是否有任何现有的库用于使用AspectJ进行声明性参数验证?
我现在正在使用的一些示例代码:
public void someFunction(Object first, Object second){
condition(notEqual(first,second), "exception message");
//...
}
condition()是抛出异常的唯一方法,所有其他验证方法都返回booleans ... somehting类似于spring或apache验证工具...
现在有了像AspectJ这样的技术,我想用注释删除所有类似代码的出现......就像这样:
@Validate({
"not equal : first, second",
"not null or empty : first"
})
public void someFunction(Object first, String second){
//...
}
是否有任何方便的实现,或者我应该创建一个?
答案 0 :(得分:1)
intellij有一个静态分析库
http://www.jetbrains.com/idea/webhelp/@contract-annotations.html
我不知道它是否是开源的(它可能是,它们的代码库的很大一部分是),以及你是否可以在你的建议中使用它,或者它是否值得(滚动你自己) )。
当然还有古老的javax.validation包,它是javaEE6 / 7的一部分。应该有很多开源实现。你应该能够注释实际的方法参数。你必须写自己的建议,但可以进行验证。
答案 1 :(得分:0)
实际上,因为我找不到任何接近我所描述的内容所以我自己写了并在github https://github.com/vach/valida上发布了,我会在我的域名上尽快将它发布到maven central repo上准备就绪。
现在可能想要尝试的人:
将依赖项添加到pom.xml
<dependency>
<groupId>com.vach</groupId>
<artifactId>valida</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>