前置知识体系
1.配置管理
@ImportResource 导入XML文件
@Import 导入指定类文件
@Value 默认是application.yml特殊文件,如果更改文件只能在类上用@propertySource指定.propeties文件
@EnableConfigurationProperties指定的类启用@configurationProperties生成getter,setter,构造器,toString等方法(备注:这里的@configurationProperties指定的类生成的类可以通过getter/setter获取yml文件的值)
2.自动配置
@EnableAutoConfiguration 在SpringBoot框架中,使用enable开头的注解,表示开启xx,所以这个注解是开启自动配置。这个注解在SpringBoot应用的启动类上的@SpringBootApplication的底层注解下就有,还有其他两个,分别是@AutoConfigurationPackage,注册自动配置的包,如果不配置就是所在类的包,@import导入指定类
@AutoConfiguration 这个注解是组合注解,结合了@AutoConfigBefore自动配置在XXX之前和@AutoConfigAfter自动配置在XXX之后,configuration配置类注解(备注:配置类是Spring核心注解之一)
@ConditionalOn * 这个注解是条件注解 conditional基础条件注解,conditionalOnClass 指定的类开启,conditionalOnMissingClass没有指定的类开启,conditionalOnBean指定的Bean开启,conditionalOnMissingClass没有指定的Bean的类开启,ConditionalOnProperty指定的参数开启,conditionalOnJava指定的JDK的版本才开启,conditionOnWebApplication指定的web应用开启,ConditionOnResource指定的资源开启,conditionalOnNotWebApplication不指定web应用类型才开启自动配置
综上所述:只有@EnableConfigurationProperties指定的类才可以获取yml的值,如果没有是否存在条件注解指定的类或接口去继承或开启
Servlet
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration
- DispatcherServletAutoConfiguration:视图控制器
- ServletWebServerFactoryAutoConfiguration:Servlet web工厂
- ErrorMvcAutoConfiguration:错误处理
- HttpEncodingAutoConfiguration: HTTP相关配置
- MultipartAutoConfiguration 上传文件相关配置
- WebMvcAutoConfiguration 网络相关配置
JDBC
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
- DataSourceAutoConfiguration: 基于JDBC数据源自动配置
- JdbcTemplateAutoConfiguration:基于JdbcTemplate操作数据库
- JndiDataSourceAutoConfiguration:基于JNDI数据源自动配置
- XADataSourceAutoConfiguration:基于XA二阶性提交协议的分布式数据源
- DataSourceTransactionManagerAutoConfiguration:事务管理器
Redis
org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
org.springframework.boot.autoconfigure.data.redis.RedisReactiveAutoConfiguration
org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration
- RedisAutoConfiguration:Redis数据源配置
- RedisReactiveAutoConfiguration:Redis响应式编程
- RedisRepositoriesAutoConfiguration:Redis仓库模式