如何动态给注解传值_SpringBoot里面如何优雅使用配置项?教你一个小技巧……...

前言:

前边发文,我们讲过了自定义注解(如果没有看过的可以去历史发文里面去看一下),并且自己动手建了一个注解,因此大致了解了自定义注解的原理以及使用方法。

本篇发文我们再来说一个spring里面已有的,有关配置项生效与否的注解:@ConditionalOnProperty,当然了不用这个注解你的配置项还是可以一直生效的,只是不太安全而已,用不好会加重spring的负担。

我们平常在springboot配置文件applicatio.propertiey或则是application.yml里面都会写上数据源,redis,rabbitmq等的连接项。但是你写完这些配置项后,如何动态的控制它的生效与否呢?你学会了如何去控制它,这样对spring里面的装配机制又会有更深一步的了解。对于我们以后的自身发展都是有好处的。


正文:

前边又是照例说了一堆废话,下面我们进入正文。

1. 原生注解ConditionalOnProperty源码

8a64040380b38debf471652410ad2b07.png

2. 注解说明

该注解主是通过prefix,name,value, havingValue这几项来控制你的配置项configuration是否生效的。

3. 注解常规用法之(name+havingValue)

1)通过属性name和havingValue来控制某个configuration是否生效。

其中name用来读取application.properties或者application.yml中的某个属性值。

如果该值为空,则返回false,即configuration不生效

如果值不为空,则将该值与havingValue指定的值进行比较,相同则返回true,configuration生效;否则返回false,configuration不生效。

举例验证:

① 在application.yml里面添加配置项

Test:

confi:

java

② 编写测试代码TestConfiguration.java

TestConfiguration.java完整代码如下:

package com.bj.hydra.config;import com.bj.hydra.dto.CurrentUserDTO;import lombok.extern.slf4j.Slf4j;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/*** @package: com.bj.hydra.config* @description: 注解测试* @author: YixinCapital--@IT讲坛* @create: 2019-01-04 10:36**/@Configuration@Slf4j@ConditionalOnProperty(name="test.confi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值