java在spring中操纵配置属性
我正在寻找一种方法来操作初始化时定义的@ConfigurationProperties
,这样当我@Inject / @Autorwired
使用@Bean
方法配置对象时,它就被正确配置了
情景:
我在.yml
文件中设置了一组属性。因为所有这些属性都匹配为字符串,所以其中一些属性需要特殊处理才能正确配置为各自的类型(其中一些是枚举)。我是否将属性对象设为@Component
,然后将其注入@Bean
方法并修改它?我试图组合@Bean
和@ConfigurationProperties
注释,但对象是在@Bean
方法本身返回后配置的,因此任何操作都将丢失/不可能。最好的方法是什么
例如:
在我的.yml
中,我有这样一句话:
properties:
sports:
"football": ["Team 1", "Team 2", "Team 3"]
"basketball": ["Team 4", "Team 5", "Team 6"]
settings:
"football":
"period1": "45"
"period2": "90"
"players": "11"
"basketball":
"periods": "4"
"players": "5"
这些与以下对象匹配:
Map<SportsEnum, List<TeamsEnum>
Map<SportsEnum, Map<SportSettingsEnum, String>>
TL;博士:
我想获取一个从.yml/.properties
文件配置的对象,并操纵它的可注入表示。请提供具体的例子
# 1 楼答案
这是绝对支持的,我猜你做错了什么。让我们一步一步走
首先,您的YAML文件格式不正确,应该是这样的:
然后,您的配置属性将如下所示:
接下来,应在配置中启用这些属性:
应该是这样的,真的。以下是我的列举:
以下是我在日志中得到的输出: