AOP em superclasse

Seguinte… tenho uma classe que uso como base de minhas entidades

@MappedSuperclass
public abstract class AbstractEntity implements Serializable {

	private static final long serialVersionUID = -2430361920868494692L;

	@Id
	@GeneratedValue
	private Long id;

e gostaria de usar Spring AOP para registrar ela em uma outra classe. Meu aspecto está definido da seguinte forma:

@Aspect
public class EntityRegister {

	@Autowired
	private Session session;
	
	@Pointcut("execution(* model.AbstractEntity.new(..) )")
	public void register() {}
	
	@AfterReturning("register()")
	public void putInSession(AbstractEntity entity) {
		session.register(entity);
	}
	
}

minha dúvida é como faço para obter a instancia criada por new…

Opa,

se estiver tentando criar um aspecto para interceptar instanciação, bad news: o Spring não suporta isto nativamente. Vai ter de usar o AspectJ com o compilador e tal.

aproveitando o gancho…

tenhos aspectos em minha aplicação, porém preciso adicionar um parametro pro agent na vm, fiz isso através da ide, existe a possibilidade de colocar essa conf em outro lugar, para nao ter de configurar o ambiente de todos os devs? tipo um plugin do maven?

abrassss

e se eu fizer algo assim??

@MappedSuperclass
public abstract class AbstractEntity implements Serializable {

	private static final long serialVersionUID = -2430361920868494692L;

	@Id
	@GeneratedValue
	private Long id;
	
	protected AbstractEntity() { kmenrtoeirngfdkjnvkdjnbdlknbfdklnbk(); }
	
	public Long getId() {
		return id;
	}
	
	AbstractEntity kmenrtoeirngfdkjnvkdjnbdlknbfdklnbk() { return this; }
	
	void setSessionId(Long sessionId) {
		this.sessionId = sessionId;
	}
	
}

e isso

@Aspect
@Component
public class EntityRegister {

	private static Long sessionIdSequence = 0L;
	
	private Session session = Session.getInstance();
	
	@AfterReturning(pointcut = "execution(* model.AbstractEntity.kmenrtoeirngfdkjnvkdjnbdlknbfdklnbk(..) )", returning="entity")
	public void putInSession(AbstractEntity entity) {
		
		System.out.println("aeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee tá passandooooooooooooooooo");
		
		entity.setSessionId(sessionIdSequence++);
		session.register(entity);
	}
	
}

funcionaria??? eu tentei desse jeito mas parece que não está interceptando… no meu applicationContext está assim:

 <aop:aspectj-autoproxy />