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

标签 java json spring refresh spring-bean

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/

相关文章:

android - 将json对象发送到android中的webservice

java - 为什么 Spring Security 使用默认的预认证检查?

Spring @MVC和@RequestParam验证

java - 是否有可能使具有特定 Java 代码的 Java 反编译器崩溃?

python - 写入 JSON 文件并更新所述文件

javascript - Chrome 扩展使用 jQuery 获取本地 json

java - 使用 Spring 连接数据库时出错

java - OCAJP 模拟测试

java - 与 MySql 的连接正在自动中止。如何正确配置Connector/J?

java - 正确的 JOOQ 类与 DSLConext 创建和迭代结果一起使用