gpt4 book ai didi

java - 反射(reflect) env 变量重新加载到 java bean

转载 作者:行者123 更新时间:2023-12-04 17:11:48 27 4
gpt4 key购买 nike

public static final String STUDENTS = "studentsInfo";
@Bean(name = "students")
public List<Student> getStudents() {
String configuredStudents = env.getProperty("studentsInfo"); //JSON having list of students info
List<Student> students;
if (configuredStudents != null) {
try {
students =
Arrays.asList(
JsonUtilFactory.getInstance(JsonUtilFactory.JsonUtilType.LOCAL)
.toObject(configuredStudents, Student[].class));
} catch (Exception e) {

}
}
return students;
}
  1. 我能够刷新 env 变量 [即无需系统重启 @RefreshScopespring-cloud-starter-kubernetes-config]。如何对 bean 学生进行这些更改?
  2. 此外,如果我必须部分更新 JSON [比如添加一个新学生],什么是正确的方法?

最佳答案

虽然我不确定为什么要为所有学生创建 bean,但以下是我的建议。

DefaultSingletonBeanRegistry registry = (DefaultSingletonBeanRegistry) context.getBeanFactory();
registry.destroySingleton({yourbean}) //destroys the bean object
registry.registerSingleton({yourbeanname}, {newbeanobject}) //add to singleton beans cache

How to reinitialize a Spring Bean?

更好的方法是将它们存储在 noSql 数据库中并返回列表,或者如果您想从文件中读取,则覆盖 DataSource 以从文件中读取。

关于java - 反射(reflect) env 变量重新加载到 java bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69293742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com