2012-08-10 100 views
0

我是Spring 3的新手,它提供了一堆註釋,它避免了聲明式方法。 基於註釋和聲明式方法之間的區別究竟是什麼?註釋是否有缺點?Spring聲明與註釋

+0

可能是http://stackoverflow.com/questions/182393/xml-configuration-versus-annotation-based-configuration?rq=1 – heldt 2012-08-10 06:19:26

回答

1

使用註釋是一種方法使用聲明的方式,而不是使用programmpatic方法,包括在你的方法額外的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); 
     } 
    }); 
} 
+0

不應該第一個是'註解方法',而聲明式方法==通過上下文配置XML聲明? – 2012-08-10 08:25:36

+0

你給他們你想要的名字。我的觀點是使用註釋仍然是一種聲明方式。您使用註釋在源代碼中聲明,而不是在外部XML文件中聲明它,但它仍然是聲明性的,因爲它使方法的代碼保持原樣,完全集中在業務代碼上。 – 2012-08-10 08:33:22

+0

你是對的,它們都是自然界的聲明。我可能會在原始問題的推動下發表評論:聲明與註釋?在這種情況下,正確的問題應該是:'在XML中聲明而在註釋中聲明'。 – 2012-08-10 09:05:40