1. @SpringBootApplication
@SpringBootApplication是Spring Boot项目的核心注解,主要目的是开启自动配置,它是一个组合注解,注解中主要组合了@Configuration,@EnableAutoConfiguration,@ComponentScan
2. @EnableAutoConfiguration
该注解让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置,SpringBoot会自动扫描@SpringBootApplication所在类的同级包以及子级包中的Bean,建议入口类放置在项目的根目录下。
3. @ImportResource
通过@ImportResource注解可以加载xml配置,如:
@ImportResource({"classpath:application1.xml", "classpath:application2.xml"})
4. @ConfigurationProperties
通过@ConfigurationProperties注解可以将priperties文件中的属性值与Bean中的属性自动关联,实现了属性值自动注入的功能,如在src/main/resources 下新建application.properties文件,内容为
user.username=feinik
user.userpass=123456
测试类
@Component
//通过prefix属性指定properties文件内容前缀
//也可以通过locations属性指定properties文件路径
@ConfigurationProperties(prefix = "user")
public class UserConfig {
//属性名需与properties中的键值对应
private String username;
private String userpass;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
}
5. @EnableConfigurationProperties
@EnableConfigurationProperties 注解是对 @ConfigurationProperties 的内嵌支持,默认会将指定的class注册为一个Bean,如:
@ConfigurationProperties注解的类
@ConfigurationProperties(prefix = "hello")
public class MyAutoProperties {
private static final String MSG = "word";
private String msg = MSG;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
在另外一个类中可以通过 @EnableConfigurationProperties(MyAutoProperties.class) 来将 MyAutoProperties注册为一个Bean
6. 条件注解(条件满足的情况下才会去解析条件注解注解的类)
@ConditionalOnBean 表示容器里存在指定的Bean的条件时
@ConditionalOnClass 表示当类路径下存在指定的类时
@ConditionalOnJava 基于JVM版本作为判断条件
@ConditionalOnMissingBean 当容器中不存在指定的Bean时
@ConditionalOnMissingClass 当类路径下不存在指定的Class时
@ConditionalOnNotWebApplication 当前项目不是web项目的情况下
@ConditionalOnProperty 指定的属性是否有指定的值
@ConditionalOnWebApplication 当前项目是web项目时