在spring,struts 均配置成功,使用其他方式配置AOP能正常运行的前提下。
我修改了一下配置方式,使用<aop:config>标签。
具体的配置文件如下
<bean id="userDao" class="hibernate.dao.UserDAO" />
<bean id="im"
class="com.seine.bomsheet.test.com.seine.bomsheet.test.ImpTest">
<property name="ua" ref="userAction" />
</bean>
<bean id="userAction" class="com.seine.struts.action.UserAction">
<property name="udao" ref="userDao"/>
<property name="im" ref="im"/>
</bean>
<bean id="tran" class="com.seine.aop.TestTransaction"/>
<aop:config>
<aop:aspect id="tranLog" ref="tran">
<aop:before pointcut="execution(* com.seine.struts.action.UserAction.*(..))" method="before"/>
<aop:after pointcut="execution(* com.seine.struts.action.UserAction.*(..))" method="after"/>
</aop:aspect>
</aop:config>
<bean name="/login" parent="userAction" />在页面通过login.do进入系统时,正确进行登陆,但是没有运行添加的aop。使用相同的配置,使用main函数测试的时候,通过context.getBean("userAction")获得bean,然后调用该对象的某个方法,aop能运行正常。请问这是为什么呢,struts部分有什么问题,求解求解求解·····
我修改了一下配置方式,使用<aop:config>标签。
具体的配置文件如下
<bean id="userDao" class="hibernate.dao.UserDAO" />
<bean id="im"
class="com.seine.bomsheet.test.com.seine.bomsheet.test.ImpTest">
<property name="ua" ref="userAction" />
</bean>
<bean id="userAction" class="com.seine.struts.action.UserAction">
<property name="udao" ref="userDao"/>
<property name="im" ref="im"/>
</bean>
<bean id="tran" class="com.seine.aop.TestTransaction"/>
<aop:config>
<aop:aspect id="tranLog" ref="tran">
<aop:before pointcut="execution(* com.seine.struts.action.UserAction.*(..))" method="before"/>
<aop:after pointcut="execution(* com.seine.struts.action.UserAction.*(..))" method="after"/>
</aop:aspect>
</aop:config>
<bean name="/login" parent="userAction" />在页面通过login.do进入系统时,正确进行登陆,但是没有运行添加的aop。使用相同的配置,使用main函数测试的时候,通过context.getBean("userAction")获得bean,然后调用该对象的某个方法,aop能运行正常。请问这是为什么呢,struts部分有什么问题,求解求解求解·····
<bean id="testFlowControlPointcut"
class="org.springframework.aop.support.ControlFlowPointcut">
<constructor-arg
value="com.seine.bomsheet.test.com.seine.bomsheet.test.ImpTest" />
</bean>
<bean id="testflowAdvisor"
class="org.springframework.aop.support.DefaultPointcutAdvisor">
<property name="advice" ref="logAftermethod" />
<property name="pointcut" ref="testFlowControlPointcut" />
</bean>在没有使用aop 标签且没有设置自动代理的时候没有问题,
但是在使用了aop标签后,框架自动给一些不相干的bean添加了代理,导致系统初始化失败。
请问怎么解决这个问题。