gpt4 book ai didi

java - 带参数的Spring编程事务

转载 作者:行者123 更新时间:2023-11-30 06:38:33 25 4
gpt4 key购买 nike

我正在使用 Spring 处理一些数据访问逻辑,我的问题与事务有关。交易文件http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html表明您可以实现声明式或编程式事务。我选择使用程序化方法,以便更好地控制交易的内容。

基本模式如下所示:

Product product = new Product();
// load properties

// how do I pass my product object instance to my anonymous method?
transactionTemplate.execute(
new TransactionCallbackWithoutResult()
{
protected void doInTransactionWithoutResult (TransactionStatus status)
{
// transaction update logic here
return;
}});

也许我的做法是错误的,但是,我的问题是如何将参数传递给内部匿名方法?我想这样做的原因是我可以建立我的开始事务之前的对象图(因为事务应该尽可能短,对吗?)我只希望一小部分逻辑在事务中运行(更新逻辑)。

[编辑]

到目前为止,我唯一的选择似乎是使用常量变量,或者将所有逻辑都放在匿名委托(delegate)中。这似乎是一个非常普遍的问题...您是如何在自己的代码中处理此类情况的?

最佳答案

声明它final。匿名内部类可以访问 final 局部变量:

public void someMethod() {
...
final Product product = new Product();
...
transactionTemplate.execute(
new TransactionCallbackWithoutResult()
{
protected void doInTransactionWithoutResult (TransactionStatus status)
{
doSomething(product);
return;
}});
...
}

关于java - 带参数的Spring编程事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2112312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com