【发布时间】:2010-10-02 19:29:20
【问题描述】:
在 Swing 中使用JdbcTemplate 分叉线程以执行插入是否安全。
这是一个日志事件,我尽可能不希望它影响感知性能。
【问题讨论】:
标签: java multithreading swing jdbc spring-jdbc
在 Swing 中使用JdbcTemplate 分叉线程以执行插入是否安全。
这是一个日志事件,我尽可能不希望它影响感知性能。
【问题讨论】:
标签: java multithreading swing jdbc spring-jdbc
来自 Spring 论坛的This answer 说 yes.t=25965
JdbcTemplate 是一个单例,一旦设置就不会改变状态。
【讨论】:
还要注意它的线程安全是very well explained in the Spring 3.1 reference documentation:
13.2.1.2 JdbcTemplate 最佳实践
JdbcTemplate 类的实例在配置后是线程安全的。这很重要,因为这意味着您可以配置 JdbcTemplate 的单个实例,然后安全地将这个共享引用注入到多个 DAO(或存储库)中。 JdbcTemplate 是有状态的,因为它维护对 DataSource 的引用,但这种状态不是会话状态。
【讨论】:
为什么你会认为它不会?
我没有直接从 Swing 使用 JdbcTemplate,但我有几个 Web 应用程序(每个请求都有一个单独的线程),我从来没有遇到过任何线程问题。在这种情况下,模板在应用程序启动时配置一次,并使用不同的参数重复调用。
如果您担心线程问题,您可以随时为每个日志线程创建一个新模板...
【讨论】: