首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不引用aop:方面的情况下实例化spring

如何在不引用aop:方面的情况下实例化spring
EN

Stack Overflow用户
提问于 2011-11-29 15:48:56
回答 2查看 522关注 0票数 0

使用Spring和Java;

我有个能行的切点。现在,我希望从spring中删除切入点和AOP,只需要使用java代码中的一个事件来触发事件,但是我希望仍然通过Spring调用"myAdvice“bean及其属性集。

我想得到所有的建议,即使在java代码中,没有更多的建议或任何AOP的痕迹,我已经有一个很好的事件系统工作。,我只想通过Spring实例化我的bean。

当我移除第二个代码块(一个以“aop:config”开头)时,我注意到bean "myAdvice“不再被调用和实例化了。如果不从“aop:方面”引用属性,我如何仍然调用它来设置它的属性?

在我的申请上下文中;

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-30 13:53:11

你的配置看起来很好。在加载ApplicationContext时,您的bean应该被实例化为单例bean。也许您想检查一下是否有一个默认的懒散设置,它阻止了bean的急切加载。

票数 0
EN

Stack Overflow用户

发布于 2011-11-29 18:49:44

如果您想获得bean本身,可以将其传递到以下函数:

代码语言:javascript
复制
public static Object unwrapProxy(Object proxiedBean) throws Exception {
    while(proxiedBean instanceof Advised) {
        proxiedBean = ((Advised) proxiedBean).getTargetSource().getTarget();
    }

    return proxiedBean;
}

请注意,您需要有这个循环,以确保您打开所有AOP通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8313643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档