4 Ocak 2022 Salı

Jakarta EE @Interceptor Anotasyonu

Giriş
Şu satırı dahil ederiz
import jakarta.interceptor.Interceptor;
Örnek
Şöyle yaparız. @Timed olarak işaretli kodlara AOP uygulanıyor
@ApplicationScoped
public class GreetingService {

  @Timed
  public String getGreetingTemplate(String language) {
    //
  }
}

@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE})
public @interface Timed {
}

@Interceptor
@Timed
public class TimedInterceptor {

  @AroundInvoke
  public Object timeInvocation(InvocationContext ctx) throws Exception {
    // Before method
    long start = System.currentTimeMillis();
    Object result = ctx.proceed();
    // after method

    return result.toString()+" calculated in "+(System.currentTimeMillis()- start) + "ms";
  }
}
beans.xml'de şöyle yaparız
<beans>
  <interceptors>
    <class>fish.payara.jakarta.ee9.start.TimedInterceptor</class>
   </interceptors>
</beans>
Şöyle yaparız
@Timed
@Interceptor
@Priority(Interceptor.Priority.APPLICATION)
public class TimedInterceptor {

  @AroundInvoke
  public Object auditMethod(InvocationContext ctx) throws Exception {
    ...
  }
}


Hiç yorum yok:

Yorum Gönder

Bean Validation @GroupSequence Anotasyonu

Örnek Elimizde şöyle bir kod olsun public class SampleRequest {   @NotNull   LocalDate startDate;   @NotNull   LocalDate endDate;   @AssertT...