一、springboot的常用注解
1. @Configuration注解相当于spring里面的一个xml配置文件bean.xml,一般注解在类的头上
<beans>
</beans>
@Configuration注解的配置类有如下要求:@Configuration不可以是final类型;@Configuration不可以是匿名类;嵌套的configuration必须是静态类;
2. @Bean 相当于在xml中配置了一个bean,一般标记在方法上
<bean id="" class=""></bean>
3. @Import 相当于在xml中添加如下:
<import resource=""/>
4.@SpringBootApplication注解:是springboot应用的主程序标志,是一个组合的注解,包括如下两个个注解:@ComponentScan、@EnableConfiguration
@ComponentScan注解:就是扫描所标注的类所在包下的所有需要注入的组件,将其注入应用中去。在ssm框架中的配置如下图
@EnableConfiguration注解:自动装配。获取我们注解所在包下的组件去进行注册(@AutoConfigurationPackage);装配自动配置导入选择器(@Import({AutoConfigurationImportSelector.class}));
5. @Qualifier 当IOC容器里面有相同的多个对象时,可以使用@Qualifier来指定合格者[要取哪个一个对象]
6. @Validated 验证处理 @Value读取配置文件进行数据绑定 @ConfigurationProperties批量注入配置文件中的属性
7.@PropertySource用于不在application.properties或application.yml文件中写的相关配置
8.@ImportantResource 从上面所有的配置中可以看出我们没有使用以前的spring的xml的配置方法,如果还是要使用spring里面的xml的配置方式怎么办理,使用@ImportResource
9.@Component和@Bean区别:(参考:https://www.jianshu.com/p/3fbfbb843b63)
1)@Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean,@Component(@Controller、@Service、@Repository)通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。
2)@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑,并且实例名就是方法名。
10. 配置文件加载的优先级
spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
其中同一目标下的properties文件的优先级大于yml文件
以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。
SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。
我们可以从ConfigFileApplicationListener这类便可看出,其中DEFAULT_SEARCH_LOCATIONS属性设置了加载的目录:
11.外部配置文件加载
使用配置文件的路径。我们也可以通过配置spring.config.location来改变默认配置。
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置。
指定配置文件和默认加载的这些配置文件共同起作用形成互补配置。
使用命令行参数。所有的配置都可以在命令行上进行指定;多个配置用空格分开; –配置项=值
使用命令行参数