16 Mayıs 2018 Çarşamba

SpringAOP @EnableAspectJAutoProxy Anostayonu

Giriş
Şu satırı dahil ederiz
import org.springframework.context.annotation.EnableAspectJAutoProxy;
Açıklaması şöyle. SpringBoot kullanıyorsak bu anotasyona gerek yok. @Aspect olarak işaretli sınıfların kullanılmasını sağlar.
In Spring Boot projects, we don't have to explicitly use the @EnableAspectJAutoProxy. There's a dedicated AopAutoConfiguration that enables Spring's AOP support if the Aspect or Advice is on the classpath.
Spring bean'leri ile Aspect kullanılmasını sağlar. Tüm spring boot anotasyonları gibi @EnableXYZ şeklindedir.

Örnek
Şöyle yaparız
@SpringBootApplication
@ComponentScan("com.foo.bar")
@EnableAspectJAutoProxy
public class MyApplication {

  public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
    ...   
  }
}
Örnek
Elimizde şöyle bir kod olsun
import io.micrometer.core.aop.TimedAspect;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

@Configuration
@EnableAspectJAutoProxy
public class TimerConfiguration {
    @Bean
    public TimedAspect timedAspect(MeterRegistry registry) {
        return new TimedAspect(registry);
    }
}
Kullanmak için şöyle yaparız
@PostMapping("/book")
@Timed("save_book")
public Book saveBook(@RequestBody Book book) {
  ...
}


Hiç yorum yok:

Yorum Gönder