Spring中的aware接口详情
287
2022-08-19
SpringBoot核心@SpringBootApplication使用介绍
目录@SpringBootApplication的使用1. Spring Boot 的核心1.2 关闭自动配置@SpringBootApplication及pom讲解@SpringBootApplication 主要有以下注解组成@SpringBootConfiguration@EnableAutoConfiguration 开启自动配置功能Spring启动器SpringBoot 场景启动器
@SpringBootApplication的使用
1. Spring Boot 的核心
1.1. 入口类和 @SpringBootApplication
Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的java应用程序的入口方法。
@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解:
该注解主要组合了以下注解:
@SpringBootConfiguration:这是Spring Boot项目的配置注解,这也是一个组合注解:
在Spring Boot项目中推荐使用@ SpringBootConfiguration替代@Configuration
@EnableAutoConfiguration:启用自动配置,该注解会使Spring Boot根据项目中依赖的jar包自动配置项目的配置项:
如:我们添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,Spring Boot就会自动配置tomcat和SpringMVC
@ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录。
1.2 关闭自动配置
通过上述,我们得知,Spring Boot会根据项目中的jar包依赖,自动做出配置,Spring Boot支持的自动配置如下(非常多):
如果我们不需要Spring Boot自动配置,想关闭某一项的自动配置,该如何设置呢?
比如: 我们不想自动配置 Redis ,想手动配置。
当然了,其他的配置就类似了
@SpringBootApplication及pom讲解
@SpringBootApplication 主要有以下注解组成
@SpringBootConfiguration
@EnableAutoConfiguration
@SpringBootConfiguration
Spring Boot 配置类, 它本质上是@Configuration
@Configuration配置类注解,它本质上是一个组件@Component
@Configuration
public @interface SpringBootConfiguration {
@Component
public @interface Configuration {
@EnableAutoConfiguration 开启自动配置功能
有了这个注解,以前我们需要自己配置的东西,现在都交由spring boot配置
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
1. @AutoConfigurationPackage
@Import({Registrar.class})
public @interface AutoConfigurationPackage {
在Registrar–>registerBeanDefinitions–>AutoConfigurationPackages.register中,如下图:
获得@SpringBootApplication 标注类的包名,并把该包下的所有组件扫描到spring容器中(在registerBeanDefinition中将对象放到beanDefinition中)
2. @Import({AutoConfigurationImportSelector.class})
Spring Boot启动时从META-INF/spring.factories文件中获取EnableAutoConfiguration所指定的值,将这些值作为自动配置类导入容器中,自动配置类就生效,帮我们进行自动配置工作。
Spring启动器
spring-boot-starter-parent–>依赖于spring-boot-dependencies
Spring 的版本管理中心,我们导入的包默认不需要写版本(如果没在dependencies里管理的需要注明版本)
qIpBQUF
SpringBoot 场景启动器
SpringBoot将所有的功能场景都抽取出来,做成Starters, 只需要在项目里引入这些starter, 相关依赖都会导进来。要用什么功能就导入什么场景的starter。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~