0

我是 Spring 3 的新手,它提供了一堆注释,避免了声明性方法。基于注释的方法和声明性方法之间到底有什么区别?基于注释有什么缺点吗?

4

1 回答 1

2

使用注释是使用声明性方法的一种方法,与使用程序化方法相反,在您的方法中涉及额外的 Java 代码:

声明式方法:

@Transactional
public void transferMoney(Long debitorId, Long creditorId, BigDecimal amount) {
    Account debitor = accountDAO.findById(debitorId);
    Account creditor = accountDAO.findById(creditorId);
    creditor.add(amount);
    debitor.remove(amount);
}

程序化方法:

public void transferMoney(Long debitorId, Long creditorId, BigDecimal amount) {
    transactionTemplate.execute(new TransactionCallbackWithoutResult() {
        @Override
        protected void doInTransactionWithoutResult(TransactionStatus status) {
            Account debitor = accountDAO.findById(debitorId);
            Account creditor = accountDAO.findById(creditorId);
            creditor.add(amount);
            debitor.remove(amount);
        }
    });
}
于 2012-08-10T08:22:48.807 回答