Articles of aspectj

Spring AOP pointcut que combina anotação na interface

Eu tenho uma class de serviço implementada no Java 6 / Spring 3 que precisa de uma anotação para restringir o access por function. Eu defini uma anotação chamada RequiredPermission que tem como atributo de valor um ou mais valores de um enum chamado OperationType: public @interface RequiredPermission { /** * One or more {@link […]

O bean autowired do Spring para o aspecto @Aspect é nulo

Eu tenho a seguinte configuração de primavera: Então eu tenho um aspecto: @Aspect public class SyncLoggingAspect { @Autowired private SimpleEmailSender simpleEmailSender @AfterReturning(value=”execution(* uk.co.mysite.datasync.polling.Poller+.doPoll())”, returning=”pusher”) public void afterPoll(Pusher pusher) { simpleEmailSender.send(new PusherEmail(pusher)); } } Esse aspecto funciona (eu posso acertar um ponto de interrupção no afterPoll), mas o simpleEmailSender é nulo. Infelizmente não consigo encontrar documentação […]

Uso de proxies no Spring AOP

Eu estou lendo um livro, que fala sobre como ativar o suporte a AspectJ no Spring AOP. Dada a seguir é um parágrafo retirado do livro: Para ativar o suporte à anotação AspectJ no contêiner Spring IoC, você só precisa definir um elemento XML vazio aop: aspectj-autoproxy no arquivo de configuração do bean. Em seguida, […]

O Lombok não funciona com o AspectJ?

Acabei de postar esse problema no SO sobre o Lombok não gerar meus getters / setters. Acontece que está em conflito com AspectJ. Se eu desabilitar o AspectJ, os getters / setters serão gerados apropriadamente. Meu palpite é que o compilador ajc não é capaz de reconhecer o lombok. Lombok e AspectJ são mutuamente exclusivos? […]

Emular a inheritance de annotations para interfaces e methods com o AspectJ

Muitas vezes as pessoas fazem perguntas da AspectJ como esta, então eu quero respondê-la em um lugar que eu possa ligar facilmente para mais tarde. Eu tenho essa anotação de marcador: package de.scrum_master.app; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Marker {} Agora eu anoto uma interface e / ou methods como […]

@AspectJ pointcut para todos os methods de uma class com anotação específica

Eu quero monitorar todos os methods públicos de todas as Classes com anotação especificada (por exemplo, @Monitor) (nota: Anotação está no nível da class). O que poderia ser um possível ponto de corte para isso? Nota: Eu estou usando o estilo @AspectJ Spring AOP.

Como usar o AOP com o AspectJ para logar?

Gostaria de adicionar mensagens “rastreio” a todos os meus methods públicos da seguinte forma: public void foo (s: String, n: int) {// log é um log4j logger ou qualquer outra biblioteca log.trace (String.format (“Digite foo com s:% s, n:% d”, s, n)) … log.trace (“Sair do foo”) } Agora eu gostaria de adicionar todos esses […]

Spring AOP vs AspectJ

Tenho a impressão de que o Spring AOP é melhor usado para tarefas específicas de aplicativos, como segurança, log, transactions, etc., pois usa annotations Java5 personalizadas como uma estrutura. No entanto, o AspectJ parece ser um padrão de design mais amigável. Alguém pode destacar os vários prós e contras do uso do Spring AOP vs […]

Chamada de método Spring @Transaction pelo método dentro da mesma class, não funciona?

Eu sou novo no Spring Transaction. Alguma coisa que achei muito estranha, provavelmente eu entendi isso corretamente. Eu queria ter um nível de método transacional em torno e eu tenho um método de chamador dentro da mesma class e parece que não gosta disso, tem que ser chamado da class separada. Eu não entendo como […]