Я пытаюсь определить мой аспект как конкретный аспект, чтобы иметь возможность определять pointcuts в aop.xml без компиляции кода. Я использую LTW.Aspectj: Pointcut больше не работает, когда объявлен в aop.xml (LTW)
Когда я определяю свой poincut exp в самом классе аспект и определяю аспект как простой аспект(), он отлично работает. однако, когда я объявляю аспект как конкретный аспект и определяю pointcut в aop.xml. аспект не работает больше ... и он не попал в точку внутри моих посоветуйте больше ...
Вот код с/без бетонных аспектов:
Без конкретных аспектов (работает отлично) :
public abstract aspect AbstractAspect {
protected abstract pointcut publicMethod();
}
public aspect MethodExecutionTimeAspect extends AbstractAspect {
public pointcut publicMethod() : execution(public * com.proj.package..*());
Object around() : publicMethod() {
.....
Object ret = proceed();
....
}
}
и aop.xml
<aspectj>
<aspects>
<aspect name="com.proj.packae.aspectj.MethodExecutionTimeAspect"/>
</aspects>
<weaver options="-verbose">
</weaver>
</aspectj>
с конкретными аспектами (НЕ РАБОТАЕТ)
public abstract aspect AbstractAspect {
protected abstract pointcut publicMethod();
}
public aspect MethodExecutionTimeAspect extends AbstractAspect {
public pointcut publicMethod() : execution(public * com.proj.package..*());
Object around() : publicMethod() {
.....
Object ret = proceed();
....
}
}
aop.xml
<aspectj>
<aspects>
<concrete-aspect name="com.proj.package.MethodExecutionTimeAspect" extends="com.project.package.aspectj.AbstractAspect">
<pointcut name="publicMethod" expression="execution(public * com.proj.package..*())" />
</concrete-aspect>
</aspects>
<weaver options="-verbose">
</weaver>
я использую AspectJ 1,6 банки.
Когда я не использую Concret-аспекты, это следующие журналы
[[email protected]] info register aspect com.project.package.aspectj.MethodExecutionTimeAspect
и когда я использую бетонным аспекты, я вижу следующие журналы:
[[email protected]] info define aspect com.project.package.aspectj.MethodExecutionTimeAspect
не показаны никаких ошибок в журнале, это просто похоже, что конкретные аспекты не зарегистрированы.
Просьба сообщить.
Я думаю, что вы забыли для добавления опции javaagent в вашу java-команду, выполняющую JVM. Это похоже на «-javaagent = ... aspectjweaver.jar». – ParkCheolu