@Value("${properties.name:Tom}")String name;@Value("${properties.email}")String email;我想通過(guò)注釋的值獲取 Filed。 getField("properties.name") 返回字符串字段名稱,而不是值“tom”。spring有這樣的方法嗎?
1 回答

青春有我
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
可以使用反射,因?yàn)?code>Value有 RetentionPolicyRUNTIME
Field field = Stream.of(YourClass.class.getFields()) .filter(field -> field.isAnnotationPresent(Value.class)) .filter(field -> field.getAnnotation(Value.class).value().contains("properties.name")) // or compare to whole expression, or use startsWith, or regex... Also think about NPE check .findFirst() .orElse( /* HANDLE FIELD NOT PRESENT */);
添加回答
舉報(bào)
0/150
提交
取消