0

私はSpring 3を初めて使用し、宣言的なアプローチを回避する一連の注釈を提供します。アノテーションベースと宣言型アプローチの違いは何ですか? 注釈ベースの欠点はありますか?

4

1 に答える 1

2

注釈を使用することは、メソッドに追加の Java コードを含めるプログラムによるアプローチとは対照的に、宣言的なアプローチを使用する 1 つの方法です。

宣言的アプローチ:

@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 に答える