它包含2个模块:aop-lib - 用作 lib 的方面。它包含以下类Wrap.java - 这是用于附加建议的注释WrapDef.java - 它是上述Wrap注释的定义。aop-app - 使用上述方面库DynamicLoad.java - 动态加载 javaagent 的类Main.java - 使用Wrap注释的主类。目录结构如下:.├── README.md├── aop-app│ ├── pom.xml│ └── src│ └── main│ └── java│ └── com│ └── aop│ └── app│ ├── DynamicLoad.java│ └── Main.java└── aop-lib ├── pom.xml └── src └── main └── java └── com └── aop └── app └── lib ├── Wrap.java └── WrapDef.java我正在尝试通过加载时间编织(LTW)通过动态加载官方文档中提到的 javaagent 来在aop-lib内部使用方面库(AOP 建议库)。但它不起作用。aop-app以下是Wrap.java的内容@Target({ElementType.METHOD, ElementType.TYPE})@Retention(value = RetentionPolicy.RUNTIME)public @interface Wrap { }以下是WrapDef.java的内容@Aspectpublic class WrapDef { private static final Logger logger = LoggerFactory.getLogger(WrapDef.class); public static boolean loaded = false; @Around("@annotation( wrapAnnotation ) && execution(* *(..))") public Object processSystemRequest(final ProceedingJoinPoint pjp, Wrap wrapAnnotation) throws Throwable { logger.debug("before wrap"); Object o = pjp.proceed(); logger.debug("after wrap"); return o; } static { System.out.println("Loading"); WrapDef.loaded = true; } public static void reportLoaded() { System.out.println("loaded : " + loaded); }}
添加回答
举报
0/150
提交
取消