Spring Boot常用注解

SpringBoot核心注解详解
本文详细介绍了SpringBoot中核心注解的使用方法及其功能,包括@SpringBootApplication、@EnableAutoConfiguration等,并深入探讨了条件注解的工作原理。

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项目时

转载于:https://my.oschina.net/feinik/blog/844039

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值