实施例的范围: 我有两个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
请参阅代码片段的更新。 –