打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于springboot的注解如何添加变量

问题

基于注解,很多都是写死的值,当这样的值多了,每次上线都会引起不可预料的事情,那么怎么解决一劳永逸呢。

其实,很简单,将所有的值统一放置在配置环境变量中,并通过springboot内置的模板语法进行读取即可。

示例

原代码:

@PropertySource(value={"class:datasource.properties"})

修改后的代码

@PropertySource(value={"${config.datasource}"})

其中${config.datasource}便是springboot内置的模板语法,通过读取application.yml里面的变量来进行读取。

因此,只要是注解,都可以通过这样的变量配置进行注入与解决。

那么占位符(${}表达式)是在什么时候被处理的?

  • 实际上是在org.springframework.context.support.PropertySourcesPlaceholderConfigurer里处理的,它会访问了每一个bean的BeanDefinition,然后做占位符的处理

  • PropertySourcesPlaceholderConfigurer实现了BeanFactoryPostProcessor接口

  • PropertySourcesPlaceholderConfigurer的 order是Ordered.LOWEST_PRECEDENCE,也就是最低优先级的

同时springboot内置的还有el表达式,通过#{}来获取变量,但是这种不适合在注解上面使用,在springboot2.3.5中,通过#{}来获取将会无法正确加载变量。此种方式仅适合@Value注解。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
探秘SpringBoot常用注解
从SpringMVC迁移到Springboot的方法步骤
SpringBoot入门学习(六) ~~ 参数绑定
Springboot使用@value注解,引入properties
springboot(14)配置文件加密解密
SpringBoot非官方教程 | 第七篇:springboot开启声明式事务
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服