Как сделать так, чтобы метод @AroundInvoke выполнялся там, где есть бизнес-логика? - PullRequest
0 голосов
/ 24 марта 2019

У меня есть один метод бизнес-логики.Я хочу перехватить бизнес-метод setName () и вызвать метод, аннотированный @AroundInvoke в классе Interceptor.Но в приведенном ниже коде метод @Around Invoke не выполняется. Ниже приведен мой код, который не работает.Любая помощь будет оценена.А также Может ли кто-нибудь объяснить, что здесь InvocationContext?

public class HelloInterceptor {

    @AroundInvoke
    public Object modifyGreeting(InvocationContext ctx) throws Exception {
        System.out.println("Inside Around Invoke");
        Object[] parameters = ctx.getParameters();
        String param = (String) parameters[0];
        param = param.toLowerCase();
        parameters[0] = param;
        ctx.setParameters(parameters);
        try {
            return ctx.proceed();
        } catch (Exception e) {

            return null;
        }
    }
}
@Stateless
public class HelloBean {

    String name;

    public String getName() {
        return name;
    }

    @Interceptors(HelloInterceptor.class)
    public void setName(String name) {
        this.name = name;
    }
}

package a;

public class DriverClass {
    public static void main(String[] a) {
        HelloBean bean = new HelloBean();
        bean.setName("XYZ");

    }
}

...