Spring Boot入门学习

来源:互联网 发布:淘宝访问受限怎么解决 编辑:程序博客网 时间:2024/05/19 08:04

Spring Boot简介:
Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程。在以前的spring项目中,都会面对大量繁琐的配置,而Spring Boot 则能让我们在不需要过多的配置下,轻松快速地搭建Spring Web应用,没有代码生成,也无需XML配置,快速使用spring框架。

Maven:
Maven是一个项目管理工具,Maven主要做了两件事:统一开发规范与工具,统一管理jar包。Spring Boot项目通常使用Maven来进行管理。
pom.xml,这是Maven的核心配置文件,它用于描述整个Maven项目。
pom.xml文件中的一些配置:

  • groupId:公司名或是组织名,一般来说groupId是由三个部分组成,每个部分之间以”.”分隔,第一部分是项目用途,比如用于商业的就是”com”,用于非营利性组织的就  是”org”;第二部分是公司名,比如”tengxun”、”baidu”、”alibaba”;第三部分是你的项目名。
  • artifactId:可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用”项目名-子项目名”的命名方式。
  • dependencies和dependency:配置项目依赖的jar包,Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。在spring-boot中,模块的依赖都是以starter的方式进行,以 spring-boot-starter-方式命名,指明了具体的模块。spring-boot生态中提供了丰富的starter供开发者使用。

Spring Boot属性配置和自定义属性配置:
如果需要修改自定义修改默认配置,只需要在application.properties 中添加修改相应的配置,spring boot启动的时候会读取application.properties这份默认配置。
在spring boot中提供了多环境配置,使得我们切换环境变得简便,在application.properties同目录下新建一下三个文件:
application-dev.properties 开发环境的配置文件
application-test.properties 测试环境的配置文件
application-prod.properties 生产环境的配置文件
在application.properties添加:spring.profiles.active=dev后启动应用,会发现引用了dev的这份配置信息。
在spring boot 中还可以新建application.yml代替application.properties,application.yml配置方式比application.properties更加简便。例如:

spring:                                             profiles:    active: dev  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://127.0.0.1/class    username: root    password: ******  jpa:    hibernate:      ddl-auto: update    show-sql: trueserver:  context-path: /class

Spring Boot常用注解:
注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据),用来将任何的信息或者元数据与程序元素(类、方法、成员变量等)进行关联。

@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上。

@Repository:用于标注数据访问组件,即DAO组件。

@Service:用于标注业务层组件。

@RestController:用于标注控制层组件,包含@Controller和@ResponseBody。主要是为了使 http 请求返回数据格式为 json 格式,正常情况下都是使用这个注解

@Controller:标注 Controller 类,处理 http 请求。

@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

@Component:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Configuration:指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上。

@ComponentScan 组件扫描,可自动发现和装配一些Bean。

@Bean:相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

@EnableAutoConfiguration:让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上。

@AutoWired:把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

@ControllerAdvice:包含@Component。可以被扫描到。统一处理异常。

@ExceptionHandler(Exception.class):用在方法上面表示遇到这个异常就执行以下方法。

@PathVariable: 获取 url 中的数据

@RequestParam:获取请求参数值,方法随意可以设置,但是通常需求都是使用 POST 请求处理表单提交。

@Entity:@Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略

@Id:表示该属性为主键。

@Slf4j :lombok提供的特性,在代码中直接使用log对象,不需要事先定义和初始化log对象。

@Aspect :Aspect作用是把当前类标识为一个切面供容器读取

@Before:Before是在所拦截方法执行之前执行一段逻辑

@NotEmpty: 用在集合类上面

@NotBlank: 用在String上面

@NotNull: 用在基本类型上

@valid : 会对实体类中的注解进行验证,并将验证结果返回给BindingRequest对象

AOP统一处理请求日志:
AOP是一种编程范式,与语言无关,是一种程序设计思想
面向对象关注的是将需求功能垂直划分为不同的并且相对独立的,它会封装成良好的类,并且让他们有属于自己的行为。
AOP则是利用横切的技术,将面向对象构建的庞大的类的体系进行水平切割,并且会将那些影响到了的多个类的公共行为封装成可重用的模块,这个模块被称为切面。AOP–>面向切面编程,将通用逻辑从业务逻辑中分离出来。

原创粉丝点击