實施例的範圍: 我有兩個Maven的模塊,模塊A包含DAO類用於訪問數據庫和模塊B是depence上模塊A的服務,並提供用於訪問方法數據。的彈簧配置XML文件在不同的行家模塊
在模塊A中的XML文件激活Spring使用註釋驅動的事務:
<tx:annotation-driven transaction-manager="transactionManager" />
意思我可以使用在模塊B中的交易註解(@Transactional)??我如何看到註釋不僅被忽略?
thanx提前
實施例的範圍: 我有兩個Maven的模塊,模塊A包含DAO類用於訪問數據庫和模塊B是depence上模塊A的服務,並提供用於訪問方法數據。的彈簧配置XML文件在不同的行家模塊
在模塊A中的XML文件激活Spring使用註釋驅動的事務:
<tx:annotation-driven transaction-manager="transactionManager" />
意思我可以使用在模塊B中的交易註解(@Transactional)??我如何看到註釋不僅被忽略?
thanx提前
只要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。
的<tx:annotation-driven>
和其他類似的聲明的範圍是一個application context。
如果來自不同模塊的XML文件是由一個單一的應用程序上下文中使用,<tx:annotation-driven>
被施加到在這方面所有豆。否則,如果每個模塊創建自己的應用程序上下文,則需要在其中的每個模塊中聲明<tx:annotation-driven>
。
謝謝您的回答=),但我真的不明白,所以在相關的是應用程序上下文?項目A(DAO)具有激活「註釋驅動」的XML文件,項目B沒有XML但使用註釋,它是否工作? – TekTimmy
集成測試是什麼意思?你能舉一個例子來說明如何測試註解的用法嗎?我相對較新的春天.. =/ – TekTimmy
請參閱代碼片段的更新。 –