锁定老帖子 主题:让Spring架构减化事务配置
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-26
xly_971223 写道 没用过spring2,有个问题请教一下
execution(* study.*Service.*(..)) 这里的匹配的是*Service类名还是bean名?感觉像是类名 如果是类名的话 是不是可以不用在spring配置文件中配置这些service bean了? 不配置这些service bean当然是不行的,运行时spring创建的这些匹配到的service bean对象实际是代理对象,这样才能进行拦截进行事务管理。如果不受spring管理,那么使用时只能new xxxService(),当然没办法由spring来创建代理和事务管理了。 |
|
返回顶楼 | |
发表时间:2007-05-26
cskysnew 写道 xly_971223 写道 Lucas Lee 写道 spring2里对事务的配置相当简单,不需要修改普通bean的定义,
直接按照类名、方法名进行拦截。 比如: <aop:config> <aop:advisor id="managerTx" advice-ref="txAdvice" pointcut="execution(* study.*Service.*(..))"/> </aop:config> <tx:advice id="txAdvice"> <tx:attributes> <tx:method name="find*" read-only="true"/> <tx:method name="load*" read-only="true"/> <tx:method name="*" /> </tx:attributes> </tx:advice> 注意,不需要修改被管理了事务的bean的定义。 没用过spring2,有个问题请教一下 execution(* study.*Service.*(..)) 这里的匹配的是*Service类名还是bean名?感觉像是类名 如果是类名的话 是不是可以不用在spring配置文件中配置这些service bean了? 这里的*Service是表示以“Service”结尾的所有class。使用这种配置方式可以对项目中所有按此规范命名的class进行事务管理 明白了 spring在加载这些类的时候会检查是否满足这个pointcut,如果满足则会进行增强 不知道这个pointcut能不能对bean name进行拦截 |
|
返回顶楼 | |