springboot注解作用总结

1.@ConditionalOnBean(A.class)
解释: 主要作用就是当容器中有A这个类的bean的时候才创建被修饰的方法当中的bean, 如下, 当容器中有ApplicationRunnerTest这个类的bean时, 配置类中的test1方法会生效, 反之就是与它相反的 @ConditionalOnMissingBean(ApplicationRunnerTest.class)生效, 意思就是当容器中没有这类bean的时候创建这个bean.

@Configuration
public class ComputerConfig {

    @ConditionalOnBean(ApplicationRunnerTest.class)
    @Bean("book")
    public computer test1(){
        return new computer("笔记本电脑");
    }

    @ConditionalOnMissingBean(ApplicationRunnerTest.class)
    @Bean("pat")
    public computer test2(){
        return new computer("台式电脑");
    }
}

2.ConfigurationProperties注解
作用: 批量进行@value注解从配置文件给属性进行赋值。
@value注解一个个赋值,当需要赋值的属性比较多的时候会比较麻烦, 可以使用ConfigurationProperties注解将前缀名相同的配置信息注入到属性当中,具体用法。
在配置文件中定义两个以annotation.test开头的注解
在这里插入图片描述
在配置类上面添加注解,在注解中指定前缀名字
在类中命名属性名字, 并且属性名字要和配置文件中的名字一样
添加get,set方法,否则无法完成注入
在这里插入图片描述
**3.@PostConstruct
该注解的主要作用是在项目启动的时候执行一下需要执行的方法, 一般是一些需要初始化的方法, 比如下图, 执行了一个创建数据库的方法.
执行的顺序: Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
在这里插入图片描述
3.@ConditionalOnProperty

@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
@Documented
@Conditional(OnPropertyCondition.class)
public @interface ConditionalOnProperty {

// 数组,获取对应property名称的值,与name不可同时使用
String[] value() default {};

// 配置属性名称的前缀,比如spring.http.encoding
String prefix() default "";

// 数组,配置属性完整名称或部分名称
// 可与prefix组合使用,组成完整的配置属性名称,与value不可同时使用
String[] name() default {};

// 可与name组合使用,比较获取到的属性值与havingValue给定的值是否相同,相同才加载配置
String havingValue() default "";

// 缺少该配置属性时是否可以加载。如果为true,没有该配置属性时也会正常加载;反之则不会生效
boolean matchIfMissing() default false;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值