5

我正在处理的项目在其所有样板荣耀中使用直接 JDBC 数据访问,并且不使用任何事务。我觉得使用事务和简化数据访问方法的编写方式很重要,尤其是当前正在进行一些更改。该项目已经存在了很长一段时间,不适合 ORM 框架。它还使用了很多单例(呃),并且解开它以使其能够使用依赖注入将是相当多的工作,我认为我无法说服任何人我们现在应该这样做。

我喜欢 Spring JDBC 的接口,特别是通过它的SimpleJdbcTemplate. 我的问题是如何为此启用一些简单的(每个 servlet 请求)事务,而无需在每个数据访问方法中以编程方式设置任何内容或使用 Spring IoC 容器或 AOP。我玩弄了自己的架构,最终得到一个类似于 's 的接口,并且当在请求的上下文中调用它时(通过 a和 a )SimpleJdbcTemplate,可以使用单个请求本地连接和事务。它似乎工作得很好,但我认为使用像 Spring JDBC 这样的好的外部库会更好。ServletRequestListenerThreadLocal

有人对此有经验吗?

4

2 回答 2

5

也许您可以使用TransactionTemplateTransactionCallback,如Programmatic Transaction Management中所述?

于 2009-02-17T17:01:32.963 回答
0

Spring 以声明方式为您处理事务,而您不必担心编写 AOP 类。如果您使用的是 JDK 5 或更高版本以及 Spring 2.5,则使用annotations会更好。

我不同意每个 servlet 事务。您应该有一个服务层,它是应用程序中了解工作单元的部分。控制器调用处理事务的服务。

于 2009-02-17T20:56:47.297 回答