【发布时间】:2019-02-06 08:29:59
【问题描述】:
我想在有一些资源限制的 Java 中使用方面,因此我不能使用 Spring 方面,因为它的内存占用很大。
所以我想要在没有 Spring 的情况下创建一个自定义注解,它将触发注解方法的一个方面。
我有一些实现,但是当方法运行时我看不到 Apect 被触发。这就是我所拥有的:
我的自定义注释
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyCustomAnnotation {}
注释的使用位置
@MyCustomAnnotation
public void someMethod() {
System.out.println("Method runnning...");
}
我创建的方面
@Aspect
public class MyAspect {
@Pointcut("execution(* *(..))")
public void callAt() {}
@Around(("callAt()"))
public void doSomething(ProceedingJoinPoint point) {
point.proceed();
System.out.println("Aspect is runnning...");
}
我的 gradle 文件中的配置
dependencies {
classpath "gradle.plugin.aspectj:gradle-aspectj:0.1.6"
}
apply plugin: 'aspectj-gradle'
compile 'org.aspectj:aspectjrt:1.9.1'
compile 'org.aspectj:aspectjweaver:1.9.1'
我不知道为什么它没有被触发,当应用程序运行时,我在控制台中看不到来自该方面的消息。 知道我缺少什么吗?
【问题讨论】: