切面定義可配置化及重複註解

2021-10-02 17:14:12 字數 1667 閱讀 8740

專案在這兩個方面進行了**。

1.切面自定義

一般地,切面都是這樣定義的,由於@pointcut無法通過${}注入,所以這個類很難框架化,都需要在業務方法中寫,比較麻煩,下面記錄一種可以配置此值的方式。

@aspect

@component

@pointcut("execution(public * top.jfunc.validation.controller..*.*(..))")

public void webparamvalid(){}

@around(value = "webparamvalid()")

public object doaround(proceedingjoinpoint pjp) throws throwable

@override

}@override

public int getorder()

}

1). 首先定義切面

@override

}@override

public object invoke(methodinvocation invocation) throws throwable }

2).再配置advisor,validation.aspect.pointcut就是可以配置的了。

@configuration

class paramvalidateadvisorconfig ")

private string pointcut;

@bean

public aspectjexpressionpointcutadvisor configadvisor()

@bean

public paramvalidateadvice paramvalidateadvice()

}

3).再通過enable註解或者import注入此類即可。

參考: 

2.重複註解

重複註解是從jdk1.8開始支援的,通過@repeatable註解容器,乙個典型的例子是 @scheduled和@schedules

@target()

@retention(retentionpolicy.runtime)

@documented

@repeatable(validatedes.class)

public @inte***ce validated

@target()

@retention(retentionpolicy.runtime)

@documented

public @inte***ce validatedes

這樣就可以在方法上新增多個@validated註解,也可以使用@validatedes包裹起來。

在獲取的時候如果只有乙個@validated, method.getannotation(validated.class)可以獲取到,

而如果使用的@validatedes或者有多個@validated,method.getannotation(validatedes.class)可以獲取到,而method.getannotation(validated.class)可以獲取不到。

react的表頭可配置化

實現效果 table上面增加乙個按鈕,按鈕觸發乙個model頁面,裡面是checkbox元件,提供表頭欄位的選擇。選中那個字段,table呈現那個字段。從systemtablecolumn表中獲取表的每一字段的資訊 const listcolsbytable axios.get config.hos...

可配置化軟體架構探析及實操秘訣

下一代軟體架構是服務化 元件化 可配置化,可配置化成為了軟體架構的最高端別。可配置化架構是軟體架構努力的方向。可配置化架構是指利用可配置的方式構建軟體的方法。它是在領域建模的基礎上,以配置表述業務,以配置組織架構元素 服務 元件 資料 並對配置進行規範化 自動化的管理。軟體系統最基本的三個層次是表示...

面板可配置化 變數 樣式分離

之前 開發了乙個版本,抽是抽出來了,但是變數只抽出了幾個顏色,沒什麼價值 上個版本開發過程 這次我又進行了一次迭代,現在是乙個較成熟的版本了。整體理一下思路,可以總結為3步走和2層架構 是樣式的子集,想要做 的管理,首先要把涉及到的樣式都抽取出來,這裡只涉及到了 登入頁 考勤頁 頂部選單 3個部分。...