它包含2個(gè)模塊:aop-lib - 用作 lib 的方面。它包含以下類Wrap.java - 這是用于附加建議的注釋W(xué)rapDef.java - 它是上述Wrap注釋的定義。aop-app - 使用上述方面庫DynamicLoad.java - 動(dòng)態(tài)加載 javaagent 的類Main.java - 使用Wrap注釋的主類。目錄結(jié)構(gòu)如下:.├── 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我正在嘗試通過加載時(shí)間編織(LTW)通過動(dòng)態(tài)加載官方文檔中提到的 javaagent 來在aop-lib內(nèi)部使用方面庫(AOP 建議庫)。但它不起作用。aop-app以下是Wrap.java的內(nèi)容@Target({ElementType.METHOD, ElementType.TYPE})@Retention(value = RetentionPolicy.RUNTIME)public @interface Wrap { }以下是WrapDef.java的內(nèi)容@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); }}
添加回答
舉報(bào)
0/150
提交
取消