java - 单例类不同步行为
问题描述
我正在尝试在 Springboot 中调用基于 oracle 的存储过程。它按预期工作,但我在扫描 SonarQube 时收到警告。请提出一种处理方法。
程序.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
并对其进行初始化;这有助于防止像这样的各种错误,并使您的课程更容易测试。
推荐阅读
- mongodb - 如何查询嵌入在 mongodb 中的数组中的对象?
- apache-spark - 如何访问结构数组中的值?
- json - 在 teradata 中加载 JSON 文件
- apache-spark - SPARK 性能随着本地模式下的负载增加而降低
- c# - 如何测试异步任务
返回 IEnumerable 在 xunit 中使用最小起订量? - typescript - 在 router.ts 文件中访问 Vuex 存储
- python - 将列表转换为DataFrame时如何处理错误“'NoneType'对象没有属性'keys'”
- clickhouse - clickhouse - 如何每 1 分钟或 1 天计算日期时间,
- angular - Angular使用带有基本身份验证的contenturl下载文件
- javascript - 领域字符串压缩