專案在這兩個方面進行了**。
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個部分。...