0

私は現在、JSF 2 と AOP と AspectJ アノテーションを組み合わせて使用​​している問題に直面しています。ここでSpring AOPが役割を果たしているかどうかはわかりません...(SPRING AOP、ASPECTJ、GOOGLE GUICEの違いがよくわかりませんでした...それは別の質問です)

jsfビューでフォームをクリックしてデータベースに値を追加した後、電子メールを送信しようとしています。フォームを介して参加者を追加するために、JSF (ビューにリンク) によって処理される managedBean AddPartipant があります。データベースに変更を加えるメソッドをインターセプトし、このアクションの直後にメールを送信したいと考えています。メールを送信するメソッドを備えたSpring Bean SendMailBoImplがあります(送信は正常に機能します)

AOP を使用するのが良い方法であることがわかりました。完全なWebアプリではなく、メインで機能させようとした場合にのみ機能します。問題コンテキストのSpring / Jsfに関するいくつかの資料を読みましたが、解決策が見つかりません...まだ...

ビューを介してデータベースにデータを追加する方法は問題ありませんが、データベースが変更されている間はメールが送信されません。

誰かがアイデアを持っていますか?

どうもありがとう :)

AddParticipant ManagedBean :

     public class AddParticipant  implements Serializable{

    //DI via Spring
    ParticipantBo participantBo;

    private String  id_study ;

    private Participant  aParticipant = new Participant();

            //getters and setters

    public void addParticipant(){

        aParticipant.setId_study (id_study);
        ...
        participantBo.save(aParticipant);

        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Ajout du participant "+id_study+" dans l'étude "+ study_name));

    }

マイボーサービス:

      @After("execution(* com.clb.genomic.lyon.beans.AddParticipant.addParticipant(..))")
     public void sendMail() {
           ....

        mailSender.send(message);

           ....
     }  

私のビーン設定:

 <aop:aspectj-autoproxy proxy-target-class="true" />
 <bean id="addParticipant" class="com.clb.genomic.lyon.beans.AddParticipant"/>

<bean id="sendMailBo" class="com.clb.genomic.lyon.bo.SendMailBoImpl">
    <property name="mailSender" ref="mailSender" />
    <property name="simpleMailMessage" ref="customeMailMessage" />
</bean>

私がこれを行うと、それは機能しています:

     ApplicationContext appContext =  new ClassPathXmlApplicationContext 
     ( "classpath:webConfiguration/applicationContext.xml");

     AddParticipant aspect = (AddParticipant) appContext.getBean("addParticipant");

     aspect.addParticipant();
4

1 に答える 1

0

これを読んで解決されたベース:http://kumarnvm.blogspot.fr/2012/07/using-spring-to-manage-jsf-september-10_14.html

于 2013-09-25T11:33:13.943 に答える