单例 class 不同步行为
Singleton class unsynchronized behaviour
我正在尝试在 Springboot 中调用基于 oracle 的存储过程。它按预期工作,但我在扫描 SonarQube 时收到警告。请提出一种处理方法。
Program.java :
public class DataExecutor {
@Autowired
DataSource dataSource;
@Autowired
JdbcTemplate jdbcTemplate;
public int executeprocedure(){
jdbcTemplate = new JdbcTemplate(dataSource);
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withSchemaName("FSW")
.withProcedureName("SP");
..................... Rest of the code
}
JdbcTemplate
是一个只应初始化一次的可重用对象。您的 new JdbcTemplate
完全没有必要,因为 Spring 正在为您提供。
目前的最佳实践是完全不使用字段注入,而是将所有依赖项final
并在构造函数中初始化;这有助于防止像这样的各种错误,并使您的 class 更容易测试。
我正在尝试在 Springboot 中调用基于 oracle 的存储过程。它按预期工作,但我在扫描 SonarQube 时收到警告。请提出一种处理方法。
Program.java :
public class DataExecutor {
@Autowired
DataSource dataSource;
@Autowired
JdbcTemplate jdbcTemplate;
public int executeprocedure(){
jdbcTemplate = new JdbcTemplate(dataSource);
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withSchemaName("FSW")
.withProcedureName("SP");
..................... Rest of the code
}
JdbcTemplate
是一个只应初始化一次的可重用对象。您的 new JdbcTemplate
完全没有必要,因为 Spring 正在为您提供。
目前的最佳实践是完全不使用字段注入,而是将所有依赖项final
并在构造函数中初始化;这有助于防止像这样的各种错误,并使您的 class 更容易测试。