使用Spring和Java;
我有个能行的切点。现在,我希望从spring中删除切入点和AOP,只需要使用java代码中的一个事件来触发事件,但是我希望仍然通过Spring调用"myAdvice“bean及其属性集。
我想得到所有的建议,即使在java代码中,没有更多的建议或任何AOP的痕迹,我已经有一个很好的事件系统工作。,我只想通过Spring实例化我的bean。
当我移除第二个代码块(一个以“aop:config”开头)时,我注意到bean "myAdvice“不再被调用和实例化了。如果不从“aop:方面”引用属性,我如何仍然调用它来设置它的属性?
在我的申请上下文中;
<bean id="myAdvice" class="com.myclass">
<property name="name1" ref="ref1" />
<property name="name2" ref="ref2" />
</bean>
<aop:config proxy-target-class="true">
<aop:aspect id="myAspect" ref="myAdvice">
<aop:pointcut id="myPointcut" expression="execution(* com.myexcmethod" />
<aop:around pointcut-ref="myPointcut" method="invoke" />
</aop:aspect>
</aop:config>发布于 2011-11-30 13:53:11
你的配置看起来很好。在加载ApplicationContext时,您的bean应该被实例化为单例bean。也许您想检查一下是否有一个默认的懒散设置,它阻止了bean的急切加载。
发布于 2011-11-29 18:49:44
如果您想获得bean本身,可以将其传递到以下函数:
public static Object unwrapProxy(Object proxiedBean) throws Exception {
while(proxiedBean instanceof Advised) {
proxiedBean = ((Advised) proxiedBean).getTargetSource().getTarget();
}
return proxiedBean;
}请注意,您需要有这个循环,以确保您打开所有AOP通知。
https://stackoverflow.com/questions/8313643
复制相似问题