当前位置: 代码迷 >> Java Web开发 >> spring aop配置出错,求大神帮忙,该如何处理
  详细解决方案

spring aop配置出错,求大神帮忙,该如何处理

热度:6270   发布时间:2016-04-10 23:39:14.0
spring aop配置出错,求大神帮忙
我在使用spring mvc 的时候,想学习下aop的用法,但是在配置的时候出错了。由于在applicationContext.xml中,通过<aop>对所有Service进行事务增强,因此Spring容器会对所有所有XxxService的Bean进行动态代理,在配置aop的时候就会报错,请帮忙解决下.....
applicationContext.xm 代码:
<aop:config proxy-target-class="true">
<aop:pointcut id="executeService"
expression="execution(* *..service*..*(..))" />
<aop:advisor pointcut-ref="executeService" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" propagation="REQUIRED" />
<tx:method name="search*" read-only="true" propagation="REQUIRED" />
<tx:method name="find*" read-only="true" propagation="REQUIRED" />
<tx:method name="*" propagation="REQUIRED" />
<tx:method name="del*" rollback-for="Exception" />
<tx:method name="save*" rollback-for="Exception" />
<tx:method name="add*" rollback-for="Exception" />
<tx:method name="insert*" rollback-for="Exception" />
<tx:method name="update*" rollback-for="Exception" />
<tx:method name="*" read-only="true" rollback-for="Exception" />
</tx:attributes>
</tx:advice>

<bean id="UserLoginServiceImpl" class="com.system.service.impl.UserLoginServiceImpl"/>
<bean id="userInterceptor" class="com.testAop.userInterceptor"/>
<bean id="userLoginService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
<value>com.system.service.UserLoginService</value>
</property>
<property name="target">
<ref local="UserLoginServiceImpl"/>
</property>
<property name="interceptorNames">
<list>
<value>userInterceptor</value>
</list>
</property>
</bean>

------解决方案--------------------
报错呢???
------解决方案--------------------
缺少jar包asm.jar 
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type

------解决方案--------------------
com.system.service.impl.UserLoginServiceImpl.userLoginDao  到service中找到这个变量,看看。这个bean你没在配置文件中定义。
------解决方案--------------------
引用:
我导入了asm.jar 包,还是报错啊。。。

是同样的错吗,检查下项目是否更新,再检查下是不是jar包冲突。Ctrl+Shift+T查看上面的类,看看能找出几个。
------解决方案--------------------
你的transactionManager怎么没配置。建议检查下配置,还有切面表达式。
transaction-manager="defaultTransactionManager">
------解决方案--------------------
引用:
Quote: 引用:

你的transactionManager怎么没配置。建议检查下配置,还有切面表达式。
transaction-manager="defaultTransactionManager">

可以给点源码看看吗?

 <bean id="sessionFactory"    
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">    
        <property name="configLocation" value="classpath:hibernate.cfg.xml" />    
        <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" />  
    </bean>    
  
    <!-- 定义事务管理器(声明式的事务) -->    
    <bean id="transactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
        <property name="sessionFactory" ref="sessionFactory" />  
    </bean>  
  
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
        <tx:attributes>  
            <tx:method name="*" propagation="REQUIRED" />  
        </tx:attributes>  
    </tx:advice>  
      
    <aop:config   proxy-target-class="true" >  
          
        <aop:pointcut id="interceptorPointCuts"  
            expression="execution(* org.lgh.spring.transaction5.*.*(..))" />  
  相关解决方案