Ejb3.0--2
今天继续昨天的学习,session bean 的生命周期和拦截器(interceptor)
package com.chenzhq.ejb;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import javax.ejb.Init;import javax.ejb.Local;import javax.ejb.PostActivate;import javax.ejb.PrePassivate;import javax.ejb.Remote;import javax.ejb.Remove;import javax.ejb.Stateful;import javax.interceptor.AroundInvoke;import javax.interceptor.InvocationContext;@Stateful@Remote ({HelloWorldRemote.class})@Local ({HelloWorldLocal.class})//@Interceptors ({HelloWorldInterceptor.class})public class HelloWorld implements HelloWorldLocal, HelloWorldRemote {@Initpublic void init(){System.out.println("init 方法是最早调用的方法!");}@PostConstructpublic void construct(){System.out.println("PostConstruct 方法是在init方法调用之后调用的方法!");}@PrePassivatepublic void passivate(){System.out.println("PrePassivate 方法是专门对于stateful session bean 的方法,他将在钝化bean之前调用!");}@PostActivatepublic void activate(){System.out.println("activate 方法是专门对于stateful session bean 的方法,他将在钝化bean之后,然后访问钝化的bean,容器将重新实例化bean之后调用。");}@PreDestroypublic void destroy(){System.out.println("PreDestroy 方法是在session bean 被对象池销毁前调用的。");}@Removepublic void remove(){System.out.println("Remove 方法是通过存根对象调用的,这样容器就知道什么时候将对象从对象池中移走这个对象了。");}@AroundInvokepublic Object log(InvocationContext ic) throws Exception{if(ic.getMethod().getName().equals("say"))System.out.println("say method is implemented!!!");return ic.proceed();} public String say(String name){ return name; }} 1 楼 zzx0421 2008-10-16 请问下AroundInvoke注解的方法什么时候调用? 2 楼 xiaocong1001 2008-10-17 @AroundInvoke所注释的方法是在@Init,@PostConstruct之后say方法之后调用的;