configuration processor 允许我们标记某一个属性为 deprecated
我们可以通过添加 @DeprecatedConfigurationProperty 注解到字段的 getter 方法上,来标示该字段为 deprecated,重新 build 项目,看看 JSON 文件发生了什么?
当我们再编写配置文件时,已经给出了明确 deprecated 提示:
Spring Boot 的 @ConfigurationProperties 注解在绑定类型安全的 Java Bean 时是非常强大的,我们可以配合其注解属性和 @DeprecatedConfigurationProperty 注解获取到更友好的编程方式,同时这样让我们的配置更加模块化。
附加说明以为 @ConfigurationProperties 注解满足我们的全部需要了吗?其实不然,Spring 官网明确给出了该注解和 @Value 注解的对比:
如果使用 SpEL 表达式,我们只能选择 @Value 注解
另外我之前在阅读 RabbitMQ 源码时,发现 RabbitProperties 类充分的利用了 @ConfigurationProperties 注解特性:
deprecated
Duration
Enum
嵌套属性
感觉自己后知后觉,最近在思考,为什么小时候要阅读和背诵古诗词,文言文等经典,因为这样写文章就可以轻松熟练的引用经典。技术也一样,各种框架的源码就是学生时代的古诗词和文言文,我们要多多查看阅读,甚至背诵编程思想,这样就可以写出越来越优雅的代码
关于 @ConfigurationProperties 注解的使用,这里推荐 RabbitMQ Github 源码,只需看这一个类就可以,知道怎样充分利用这个注解.
Demo 代码获取,回复公众号「demo」,打开链接查看对应的子文件夹即可
灵魂追问在实际项目中, 你能够充分利用这些特性让你的配置更灵活和模块化吗?
阅读框架源码时,他们都是怎样配置的呢?
@Value 注解怎样给出默认值?
提高效率工具[center]
推荐阅读红黑树,超强动静图详解,简单易懂
只会用 git pull ?有时候你可以尝试更优雅的处理方式
双亲委派模型:大厂高频面试题,轻松搞定
面试还不知道BeanFactory和ApplicationContext的区别?
如何设计好的RESTful API
欢迎持续关注公众号:「日拱一兵」前沿 Java 技术干货分享
高效工具汇总
面试问题分析与解答
技术资料领取
以读侦探小说思维轻松趣味学习 Java 技术栈相关知识,本着将复杂问题简单化,抽象问题具体化和图形化原则逐步分解技术问题,技术持续更新,请持续关注......