您的位置:首页 > 编程语言 > Java开发

Spring Boot常用注解

2017-02-22 00:00 736 查看
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项目时
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息