一、SpringBoot入门
1. SpringBoot简介
Spring Boot称为搭建程序的脚手架,其主要作用是快速构建庞大的Spring项目,尽可能减少一切xml配置,做到开箱即用(提供默认配置,存放默认配置的包就是启动器starter),迅速上手
2. SpringBoot特点
- 为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验
- 开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式
- 提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
- 绝对没有代码生成,也无需XML配置
二、常用注解
- @SpringBootApplication
启动类
- @RestController
定义表现层
- @Configuration
声明一个类作为配置类,代替xml文件
- @Bean
声明方法上,将方法的返回值加入Bean容器
- @Value
属性注入
- @PropertySource
指定外部属性文件
- @Configuration
声明当前类为属性读取类
- @Component
定义该类加入Spring的bean容器
- @EnableConfigurationProperties
引入配置类
- @Transactional
配置事务
- @MapperScan
扫描包注解
- @ConfigurationProperties(prefix = "**")
声明当前类为属性读取类,读取属性文件中前缀为**的值
三、自动装配原理
@SpringBootApplication注解
@SpringBootConfiguration
- 在这个注解上有一个@Configuration注解,声明当前类是一个配置类,
- 然后Spring会自动扫描添加了@Configuration的类,并且读取其中的配置信息。
- @SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类,项目中只能有一个,无需自己添加。
@EnableAutoConfiguration
- 基于所添加的依赖配置Spring,SpringBoot内部对大量的第三方库或Spring内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效。
@ComponentScan
- 配置组件扫描的指令,通过basePackageClasses或者basePackages属性来指定要扫描的包。
- 如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包
四、默认配置生效步骤
- @EnableAutoConfiguration注解会去寻找META-INF/spring.factories文件,读取其中以EnableAutoConfiguration为 key 的所有类的名称,这些类就是提前写好的自动配置类
- 这些类都声明了@Configuration注解,并且通过@Bean注解提前配置了我们所需要的一切实例。完成自动配置
- 但是,这些配置不一定生效,因为有@ConditionalOn注解,满足一定条件才会生效。比如条件之一:是一些相关的类要存在
- 类要存在,我们只需要引入了相关依赖(启动器),依赖有了条件成立,自动配置生效。
- 如果我们自己配置了相关Bean,那么会覆盖默认的自动配置的Bean
- 我们还可以通过配置application.yml文件,来覆盖自动配置中的属性
五、添加拦截器
- 让一个类实现WebMvcConfigurer,并且添加@Configuration注解
- 若想要自定义HandlerMapping、HandlerAdapter、ExceptionResolver等组件,你可以创建一个WebMvcRegistrationsAdapter实例来提供以上组件。
- 若想要完全自定义SpringMVC,不保留SpringBoot提供的一切特征,你可以自己定义类并且添加@Configuration注解和@EnableWebMvc注解
版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除