替换Spring绑定类中的共享成员变量

时间:2017-02-16 12:52:06

标签: java

尚未生产的java应用程序代码具有以下结构(这在很多地方都有)。该类在应用程序上下文加载期间仅加载一次。这之前工作得很好。但是,当移动到具有多个线程的回归环境时,由于共享成员变量,这将导致并发问题。

Class A {

    private Set<String> codeSet = null;

    public void method() {

        codeSet = SomeRepo.someMethod(session.getUser()); // Heavy repo call, returns user specific data.

        method1();

        method2();

        ....

        methodn();
   }

   private methodn() {
        codeSet.iterator().next(); 
   }
}

通过将变量范围更改为方法,并将其传递给使用此变量的所有后续私有方法,可以减轻此问题。但是,这涉及应用程序代码中的许多更改。

是否有任何干净的解决方案可以解决以下问题,而无需进行太多更改。提前谢谢。

1 个答案:

答案 0 :(得分:2)

是的,通过应用以下重构可以轻松解决问题:

<script src="https://code.highcharts.com/highcharts.src.js"></script>

<div id="container" style="height: 400px"></div>