[英]Capture setters inside mapper method using AspectJ in Spring
我有這樣的java類:
@Data
public class Lead {
private A a;
...
}
@Data
public class A {
private B b;
private String c;
private List<Integer> d;
}
@Data
public class B {
private String e;
private String f;
}
我有一個帶有這樣注釋的映射器方法:
@FieldPermissionAnnotation("a")
public A fetchA(//Some DB Entities) {
A a = new A();
...
a.setB(fetchB());
...
a.setC(fetchC());
...
a.setD(fetchD());
}
我的 FieldPermissionAspect 從用戶的 db 獲取權限字段映射,如果用戶沒有給定字段的權限,則將字段設置為 null。
我得到這樣的字符串字段層次結構列表:
["a-b-e", "a-b-f", "a-c", "a-d"]
我想在 fetchA() 方法中使用 @Around 圍繞它們各自的 setter 將 b、c、d 設置為 null。 使用 AspectJ 和 spring 是否可行? 如何在 fetchA() 方法中訪問 b、c、d 的設置器?
我想集
b
,c
,d
到null
使用@Around
內部各自的設置器周圍fetchA()
方法。 使用 AspectJ 和 spring 是否可行? 如何在fetchA()
方法中訪問b
、c
、d
的設置器?
正如我在評論中所說,您的問題不清楚,我必須猜測您想做什么,因為沒有方面代碼。 我的假設是,當(且僅當)從某個其他方法內部調用 setter 方法時,您希望攔截它們。 即你需要一個控制流相關的切入點,比如cflow()
或cflowbelow()
。 根據Spring 手冊,Spring AOP 不支持這些切入點,但是您可以將 Spring 配置為使用帶有 LTW(加載時編織)的完整AspectJ 。
有關更多詳細信息,我建議您向我展示您的( MCVE ,最好在 GitHub 上使用 Maven 構建),然后我向您展示我的(具體解決方案)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.