注释Spring AOP AspectJ不能使用JSF2视图中使用的Managed Bean的方法吗?

时间:2013-09-25 07:38:24

标签: java jsf-2 aspectj interceptor spring-aop

这是我第二次提出这个问题。我找不到解决方案。

使用AspectJ的AOP是否可以使用从JSF2中的视图调用的Managed Bean中的方法?

只想知道是否可能。

我想使用拦截器在单击按钮时发送电子邮件,click使用托管bean方法在我的数据库中添加内容。我想用带有Aspect J / AOP SPRING的Service Mailer拦截这个方法。我认为存在背景问题。因为在主要的拦截工作中,AOP被识别,但是当我点击jsf2视图上的按钮时没有任何事情发生。

由于

我已发布here

1 个答案:

答案 0 :(得分:0)

OK AOP与@Aspect现在正在工作,我真的不明白为什么......

我首先在faces配置中声明我的bean,认为它们是在春天注入Beans.xml句柄。

    <managed-bean>
    <managed-bean-name>patient</managed-bean-name>
    <managed-bean-class>com.clb.genomic.lyon.beans.AddParticipant</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property>
        <property-name>participantBo</property-name>
        <value>#{participantBo}</value>
    </managed-property>
    <managed-property>
        <property-name>sendMailBo</property-name>
        <value>#{sendMailBo}</value>
    </managed-property>
</managed-bean>

我直接在Beans.xml中移动了声明....现在它可以工作了。

<aop:aspectj-autoproxy proxy-target-class="true" />

<bean id="patient" class="com.clb.genomic.lyon.beans.AddParticipant" scope="request">

    <property name="participantBo">
      <ref bean="participantBo"/>
   </property>

    <property name="sendMailBo">
        <ref bean="sendMailBo"/>
   </property>

</bean>