1. 右键项目,选择新建,选择上下文和依赖注入,选择拦截器绑定类型
设置拦截器名称和位置:
完成后,生成的代码如下:
LoggingInterceptor类说明:
(1)@Logging是拦截器的名称。
(2)@Interceptor表明LoggingInterceptor类是拦截器的实现。
(3)@AroundInvoke表明该拦截器的使用方式是标注在方法上。
(4)参数InvocationContext
2. 把拦截器注册到beans.xml中
3. 在CustomerSessionBean中的方法getCustomers2上加标注:@Logging
这就表明拦截器Logging将在getCustomers2方法上作用。
每次调用getCustomers2方法之前和之后会打印LOG。
设置拦截器名称和位置:
完成后,生成的代码如下:
@Inherited @InterceptorBinding @Retention(RUNTIME) @Target({METHOD, TYPE}) public @interface Logging { } @Interceptor @Logging public class LoggingInterceptor { @AroundInvoke public Object intercept(InvocationContext context) throws Exception { System.out.println("%%%%% BEFORE: " + context.getMethod()); Object result = context.proceed(); System.out.println("%%%%% AFTER: " + context.getMethod()); return result; } }
LoggingInterceptor类说明:
(1)@Logging是拦截器的名称。
(2)@Interceptor表明LoggingInterceptor类是拦截器的实现。
(3)@AroundInvoke表明该拦截器的使用方式是标注在方法上。
(4)参数InvocationContext
2. 把拦截器注册到beans.xml中
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> <interceptors> <class>org.glassfish.samples.LoggingInterceptor</class> </interceptors> </beans>
3. 在CustomerSessionBean中的方法getCustomers2上加标注:@Logging
这就表明拦截器Logging将在getCustomers2方法上作用。
每次调用getCustomers2方法之前和之后会打印LOG。
没有评论:
发表评论