You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Correct usage of PostConstruct, PreDestroy, PrePassivate, PostActivate, and AroundInvoke for EJBs and Interceptors.

Stateless

import javax.ejb.Stateless;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;

@Stateless
public class MyStatelessBean implements  MyBusinessInterface  {

    @PostConstruct
    public void constructed(){

    }

    @PreDestroy
    public void destroy(){

    }

    @AroundInvoke
    public Object invoke(InvocationContext invocationContext) throws Exception {
        return invocationContext.proceed();
    }
}

Stateful

import javax.ejb.Stateful;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;

@Stateful
public class MyStatefulBean implements  MyBusinessInterface  {

    @PostConstruct
    public void constructed(){

    }

    @PreDestroy
    public void destroy(){

    }

    @AroundInvoke
    public Object invoke(InvocationContext invocationContext) throws Exception {
        return invocationContext.proceed();
    }

    @PostActivate
    public void activated(){

    }

    @PrePassivate
    public void passivate(){

    }
}

MessageDriven

import javax.ejb.MessageDriven;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.interceptor.AroundInvoke;
import javax.interceptor.InvocationContext;

@MessageDriven
public class MyMessageDrivenBean implements  MyListenerInterface  {

    @PostConstruct
    public void constructed(){

    }

    @PreDestroy
    public void destroy(){

    }

    @AroundInvoke
    public Object invoke(InvocationContext invocationContext) throws Exception {
        return invocationContext.proceed();
    }
}

Interceptor

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.interceptor.InvocationContext;
import javax.interceptor.AroundInvoke;
import javax.ejb.PostActivate;
import javax.ejb.PrePassivate;

public class MyInterceptor {

    @PostConstruct
    public void constructed(InvocationContext invocationContext){

    }

    @PreDestroy
    public void destroy(InvocationContext invocationContext){

    }

    @AroundInvoke
    public Object invoke(InvocationContext invocationContext) throws Exception {
        return invocationContext.proceed();
    }

    @PostActivate
    public void activated(InvocationContext invocationContext){

    }

    @PrePassivate
    public void passivate(InvocationContext invocationContext){

    }
}
  • No labels