这篇文章将为大家详细讲解有关Springboot中注解及配置文件加载顺序是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Springboot常用注解及底层实现
@SpringBootApplication:这个注解标识了一个SpringBoot工程,她实际上是另外三个注解的组合,分别是:
@SpringBootConfiguration:源码可以看到,这个注解除了元注解外,实际就只有一个@Configuration,把该类变成一个配置类,表示启动类也是一个配置类;
@EnableAutoConfiguration:是开启自动配置的功能,向Spring容器中导入了一个Selector,用来加载ClassPath下SpringFactories中所定义的自动配置类,将这些自动加载为配置Bean;
由@AutoConfigurationPackage和@Import组成,前者表示让包中的类能够被自动扫描到spring容器中;使用import是往Spring容器中导入一个组件,将主配置类的所在包及子包所有组件扫描加载到Spring容器;
Springboot在启动的时候,从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作。以前需要我们自己配置的东西,自动配置类都帮我们完成了。
@ComponentScan:标识扫描路径,因为默认是没有配置实际扫描路径的,所以SpringBoot扫描的路径是启动类所在的当前目录;
@Bean注解:用来定义Bean,类似于XML中的<bean>标签,Spring在启动时,会对加了@Bean注解的方法进行解析,将方法的名字作为beanName,并通过执行方法得到bean对象;
@Controller、@Service、@ResponseBody、@Autowired
Springboot中配置文件的加载顺序
优先级从高到低,高优先级的配置覆盖低优先级的配置,所有配置会形成互补配置;
命令行参数。所有的配置都可以在启动命令行上进行指定;
Java系统属性(System.getProperties)
操作系统环境变量;
jar包外部的application-{profile}.properties或.yml配置文件;可以通过制定配置文件的方式:
--spring.config.location=/bdl/application.properties
jar包内部的配置文件;
@Configuration注解类上的@PropertySource
关于Springboot中注解及配置文件加载顺序是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。