Spring JdbcTemplate和Threading

在Swing中使用JdbcTemplate分叉Thread以执行插入是否安全。

这是一个记录事件,我尽可能不希望它影响感知性能。

Spring论坛的答案是yes.t = 25965

JdbcTemplate是一个单例,一旦设置就不会改变状态。

另请注意, Spring 3.1参考文档中对其线程安全性进行了很好的解释 :

13.2.1.2 JdbcTemplate最佳实践

一旦配置,JdbcTemplate类的实例就是线程安全的。 这很重要,因为这意味着您可以配置JdbcTemplate的单个实例,然后将此共享引用安全地注入多个DAO(或存储库)。 JdbcTemplate是有状态的,因为它维护对DataSource的引用,但此状态不是会话状态。

你为什么认为它不会?

我没有直接从Swing使用JdbcTemplate ,但我有几个Web应用程序(每个请求都有一个单独的线程),我从来没有遇到任何线程问题。 在这种情况下,模板在应用程序启动时配置一次,并使用不同的参数重复调用。

如果您担心线程问题,可以随时为每个日志记录线程创建一个新模板…