Springboot常用注解及配置文件加载顺序详解
springboot常用注解及底层实现
1、@springbootapplication:这个注解标识了一个springboot工程,她实际上是另外三个注解的组合,分别是:
@springbootconfiguration:源码可以看到,这个注解除了元注解外,实际就只有一个@configuration,把该类变成一个配置类,表示启动类也是一个配置类;
@enableautoconfiguration:是开启自动配置的功能,向spring容器中导入了一个selector,用来加载classpath下springfactories中所定义的自动配置类,将这些自动加载为配置bean;
由@autoconfigurationpackage和@import组成,前者表示让包中的类能够被自动扫描到spring容器中;使用import是往spring容器中导入一个组件,将主配置类的所在包及子包所有组件扫描加载到spring容器;
springboot在启动的时候,从类路径下的meta-inf/spring.factories中获取enableautoconfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作。以前需要我们自己配置的东西,自动配置类都帮我们完成了。
@componentscan:标识扫描路径,因为默认是没有配置实际扫描路径的,所以springboot扫描的路径是启动类所在的当前目录;
2、@bean注解:用来定义bean,类似于xml中的<bean>标签,spring在启动时,会对加了@bean注解的方法进行解析,将方法的名字作为beanname,并通过执行方法得到bean对象;
3、@controller、@service、@responsebody、@autowired
springboot中配置文件的加载顺序
优先级从高到低,高优先级的配置覆盖低优先级的配置,所有配置会形成互补配置;
1、命令行参数。所有的配置都可以在启动命令行上进行指定;
2、java系统属性(system.getproperties)
3、操作系统环境变量;
4、jar包外部的application-{profile}.properties或.yml配置文件;可以通过制定配置文件的方式:
--spring.config.location=/bdl/application.properties
5、jar包内部的配置文件;
6、@configuration注解类上的@propertysource
到此这篇关于springboot常用注解及配置文件加载顺序详解的文章就介绍到这了,更多相关springboot常用注解内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!