尚未生产的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();
}
}
通过将变量范围更改为方法,并将其传递给使用此变量的所有后续私有方法,可以减轻此问题。但是,这涉及应用程序代码中的许多更改。
是否有任何干净的解决方案可以解决以下问题,而无需进行太多更改。提前谢谢。
答案 0 :(得分:2)
是的,通过应用以下重构可以轻松解决问题:
<script src="https://code.highcharts.com/highcharts.src.js"></script>
<div id="container" style="height: 400px"></div>