有沒有一種方法可以執行(或多或少)「自動」JSR-303 java bean驗證,而無需運行時修改類?沒有字節代碼編織的Java JSR-303自動Bean驗證
通常我會看到有人使用AspectJ來完成這個任務,但是當我使用運行時代碼編織(如cofoja)時,我們有很多複雜的問題需要避免。它使得我們的許多構建工具失敗,因爲運行時類文件與磁盤上的類文件不同。
我看過dynamic proxies通過只能代理接口(公共方法)的反射,如果你調用任何註釋在「this」內的東西,你不再通過代理了,所以你失去了驗證。
我也看過ByteBuddy的方法來通過包裝/重新定義類來攔截方法調用。這裏可能有些東西,但我不知道如何攔截私有方法或完成上述操作,而無需重新修改原始類。
任何想法?
我相信Spring可以使用CGLib,但我不熟悉它的'@ Valid'路由的內部。 – chrylis