一、问题描述
在一次开发过程中遇到个这样的情况,我想要通过配置文件中的一个参数(布尔型)"A"来控制选用另外两个参数"B"和"C"中的哪一个,情况大致如下:
我希望通过 is-free 来判断是选择 domain 还是 free-domain 并注入到 domain 字符串
正常注入方式如下:
需要在业务代码中进行判断,感觉不太优雅
二、解决问题
先上代码
在 @Value 注解中外层使用功能更强大的#{}包裹,里面使用${}读取配置文件的值进行三元表达式判断,这样就可以直接在配置文件通过配置 is-free 来控制 domain 的值,同时 domain 和 free-domain 的值也可以在配置文件配置,不用修改业务代码。
注意:#{}使用${}读取配置文件要用''引号包裹,否则运行会报错!!!