以前我们做项目都是这样分层的
com.a.b.dao
com.a.b.manager
com.a.b.model
com.a.b.action
........
然后事务是直接在manager这层控制的
现在换了新公司,这个是旧项目,分层是
安模块来分的,把ACTION,MANAGER,DAO等类都放到一个包下,这样对事务的控制(用XML来配置)要昨样配呢?
另有个不明的地方。
<tx:advice id="txAdvice"
transaction-manager="myTransactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"
propagation="REQUIRED" />
<tx:method name="find*" read-only="false"
propagation="REQUIRED" />
<tx:method name="*" rollback-for="BusinessException" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="businessService"
expression="execution(* com.bb.manager.*.*(..)) or execution(* com.bb.memberlog.*.*(..)) or execution(* com.bb.cc.dd.*.*(..)) or execution(* com.bb.*.*.*(..)) or execution(* com.bb.exposition.*.*(..)) or execution(* kk.*.*(..)) " />
<aop:advisor pointcut-ref="businessService"
advice-ref="txAdvice" />
</aop:config>
如上面这样配置,假如我有个类(POJO类)里面有简单的get方法,但没有涉及到数据库操作,这个类是在com.bb.manager路径下,也会开启一个事务吗,当执行这个get的方法时?
com.a.b.dao
com.a.b.manager
com.a.b.model
com.a.b.action
........
然后事务是直接在manager这层控制的
现在换了新公司,这个是旧项目,分层是
安模块来分的,把ACTION,MANAGER,DAO等类都放到一个包下,这样对事务的控制(用XML来配置)要昨样配呢?
另有个不明的地方。
<tx:advice id="txAdvice"
transaction-manager="myTransactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"
propagation="REQUIRED" />
<tx:method name="find*" read-only="false"
propagation="REQUIRED" />
<tx:method name="*" rollback-for="BusinessException" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="businessService"
expression="execution(* com.bb.manager.*.*(..)) or execution(* com.bb.memberlog.*.*(..)) or execution(* com.bb.cc.dd.*.*(..)) or execution(* com.bb.*.*.*(..)) or execution(* com.bb.exposition.*.*(..)) or execution(* kk.*.*(..)) " />
<aop:advisor pointcut-ref="businessService"
advice-ref="txAdvice" />
</aop:config>
如上面这样配置,假如我有个类(POJO类)里面有简单的get方法,但没有涉及到数据库操作,这个类是在com.bb.manager路径下,也会开启一个事务吗,当执行这个get的方法时?
是不是表示,符合类路径下的所有方法都是会开启一个事务,(这包括有数据库操作与没数据库操作的吗?)这样是不是不合理,性能很不好?