我正在尝试定义一个切入点,当调用来自 Spring Data JPA 存储库的方法时,它的建议将运行。
这是我的匿名切入点以及内联建议(来自PliEventManagerAspect
):
after(Pli pli) returning: (execution(* org.springframework.data.repository.CrudRepository+.save(Pli)) && args(pli)){
System.out.println("Caught!!!!");
}
这里是我的 PliRepository 的定义:
public interface PliRepository extends GlobalRepository<Pli, Long>, PliRepositoryCustom {
和 PliRepositoryImpl:
public class PliRepositoryImpl extends QueryDslRepositorySupport implements PliRepositoryCustom {
和 PliRepositoryCustom:
public interface PliRepositoryCustom {
最后是 GlobalRepository:
@NoRepositoryBean
public interface GlobalRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
我还设置了 javaagent 命令行参数。我有以下aop.xml:
<!DOCTYPE aspectj PUBLIC
"-//AspectJ//DTD//EN"
"http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver options="-verbose">
<include within="org.springframework.data.repository..*"/>
</weaver>
<aspects>
<aspect name="trc.suivi.aspects.PliEventManagerAspect" />
</aspects>
</aspectj>
上面的建议应该在 LTW 中运行,因为它建议 jar 中的一个类,但根本没有运行......我确信我必须在切入点定义中犯一些错误。有人可以帮忙吗?