Spring Boot
概念
Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应 用程序并且尽可能减少你的配置文件。简单来说就是 SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,整合了所有的框架。
Spring Boot 的特点:
- SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项 目的 Maven 或 Gradle 构建中。
- 自动配置:SpringBoot 的自动配置特性利用了 Spring4 对条件化配置的支持,合理地推测应用所需的 bean 并自动化配置他们。
Spring Boot 带来的好处有哪些
- 不需要配置 web.xml,加载 spring 和 spring mvc
- 不需要配置数据库连接、配置 spring 事务
- 不需要 xml 方式注解
Spring Boot项目目录结构
注释
@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。
@Component:可以使用此注解描述Spring中的Bean,但它是一个泛化的概念, 仅仅表示一个组件(Bean) , 并且可以作用在任何层次。使用时只需将该注
解标注在相应类上即可。
@Repository:用于将数据访问层(DAO层)的类标识为Spring 中的Bean,其功能与@Component相同。
@Service:通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的Bean,其功能与@Component相同。
@Controller:通常作用在控制层,用于将控制层的类标识为Spring中的Bean,其功能与@Component相同。一般这个注解在类中,通常方法需要配合注解@RequestMapping。
@RestController:和@Controller作用一 样,但是所有的方法都是默认有@ResponseBody的效果
响应相关:
@ResponseBody:返回的Content-Type响应头为application/json,会直接返回json数据。该注解一般会配合@RequestMapping一起使用。不带@ ResponseBody注解,需要返回字符串,表示静态资源路径
统一的拦截器: @Configuration +实现WebMvcConfigurer接口,处理的路径映射,只要匹配路径的请求,统一会调用拦截器方法
统一的异常处理:配置@ControllerAdvice + @ExceptionHandlert统一 拦截在Controller请求方法中抛出的异常
请求相关:
@RequestMapping:可以使用在类、方法上,表示客户端请求的配置(包括uri, 请求方法,数据类型)
- @RequestParam获取请求数据:处理k1=v1 &k2=v2,键对应@RequestParam中的字符串,如果没有@RequestParam,就映射为变量名
- @RequestBody:请求数据类型Content-Type= application/json
- @PathVariable :获取请求路径中的变量
Bean的使用:装配、注入
@Autowired:
- 自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功
- 可以出现在变量上或方法上
- 使用注解注入时,set方法就不是必须的
@Qualifier:
- 在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用
- 属性:value:用于指定注入bean的id
@Resource:
- 直接按照bean的id注入。它可以独立使用
- 属性:name:用于指定bean的id