论坛首页 Java企业应用论坛

让Spring架构减化事务配置

浏览 10100 次
精华帖 (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来创建代理和事务管理了。
0 请登录后投票
   发表时间: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进行拦截
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics