2011-11-23 74 views
1

實施例的範圍: 我有兩個Maven的模塊,模塊A包含DAO類用於訪問數據庫和模塊B是depence上模塊A的服務,並提供用於訪問方法數據。的彈簧配置XML文件在不同的行家模塊

在模塊A中的XML文件激活Spring使用註釋驅動的事務:

<tx:annotation-driven transaction-manager="transactionManager" /> 

意思我可以使用在模塊B中的交易註解(@Transactional)??我如何看到註釋不僅被忽略?

thanx提前

回答

1

只要Maven依賴的連接是否應該沒有關係的DAO是從服務類不同的JAR。您可以使用集成測試來說服自己註釋不被忽略。

[UPDATE]
SomeTest.java

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations={"classpath:applicationContext.xml"}) 
public class SomeTest { 
    @Autowired EmployeeService employeeService; 
    @Test 
    public final void addEmployee() throws Exception { 
    employeeService.addEmployee(new Employee("John Doe")); 
    } 
} 

EmployeeService.java

@Service("employeeService") 
public class EmployeeService() { 
    @Autowired private EmployeeDao employeeDao; 

    @Transactional 
    public void addEmployee(final Employee employee) { 
    employeeDao.insert(employee); 
    } 
} 

所有上述是包含該服務的模塊中。如您所描述的,DAO來自另一個JAR。

+0

集成測試是什麼意思?你能舉一個例子來說明如何測試註解的用法嗎?我相對較新的春天.. =/ – TekTimmy

+0

請參閱代碼片段的更新。 –

3

<tx:annotation-driven>和其他類似的聲明的範圍是一個application context

如果來自不同模塊的XML文件是由一個單一的應用程序上下文中使用,<tx:annotation-driven>被施加到在這方面所有豆。否則,如果每個模塊創建自己的應用程序上下文,則需要在其中的每個模塊中聲明<tx:annotation-driven>

+0

謝謝您的回答=),但我真的不明白,所以在相關的是應用程序上下文?項目A(DAO)具有激活「註釋驅動」的XML文件,項目B沒有XML但使用註釋,它是否工作? – TekTimmy