有没有一种方法可以执行(或多或少)“自动”JSR-303 java bean验证,而无需运行时修改类?没有字节代码编织的Java JSR-303自动Bean验证
通常我会看到有人使用AspectJ来完成这个任务,但是当我使用运行时代码编织(如cofoja)时,我们有很多复杂的问题需要避免。它使得我们的许多构建工具失败,因为运行时类文件与磁盘上的类文件不同。
我看过dynamic proxies通过只能代理接口(公共方法)的反射,如果你调用任何注释在“this”内的东西,你不再通过代理了,所以你失去了验证。
我也看过ByteBuddy的方法来通过包装/重新定义类来拦截方法调用。这里可能有些东西,但我不知道如何拦截私有方法或完成上述操作,而无需重新修改原始类。
任何想法?
我相信Spring可以使用CGLib,但我不熟悉它的'@ Valid'路由的内部。 – chrylis