Java 我是否应该使用OVal(对象验证框架),即使它是否需要AspectJ?

Java 我是否应该使用OVal(对象验证框架),即使它是否需要AspectJ?,java,validation,aspectj,oval,Java,Validation,Aspectj,Oval,我有一个Java Maven项目,由多人开发 由于我非常喜欢做JUnit测试之类的工作,OVal的概念引起了我的兴趣,因为我可以编写如下代码: @NotNull @NotEmpty @Length(max=32) private String name 然而,缺点是: 现在每个人都必须将AspectJ插件安装到他的Eclipse中 至少对我来说,每次启动时都会出现一个错误(我可以点击,但仍然很烦人) 我想AspectJ会让一切变慢 那么它值得吗?是否有一个我不需要AspectJ的替代方案

我有一个Java Maven项目,由多人开发

由于我非常喜欢做JUnit测试之类的工作,OVal的概念引起了我的兴趣,因为我可以编写如下代码:

@NotNull
@NotEmpty
@Length(max=32)
private String name
然而,缺点是:

  • 现在每个人都必须将AspectJ插件安装到他的Eclipse中
  • 至少对我来说,每次启动时都会出现一个错误(我可以点击,但仍然很烦人)
  • 我想AspectJ会让一切变慢
那么它值得吗?是否有一个我不需要AspectJ的替代方案

注意:这是我在Eclipse中遇到的错误:

这是getCommonProperties()方法的头部,它似乎有问题:

public static LinkedHashMap<String,Integer> getCommonProperties
(
    @NotEmpty @NotNull String endpoint,
    @NotEmpty @NotNull String where,
    @Range(min=0, max=1) Double threshold,
    @Min(1) Integer maxResultSize,
    @Min(1) Integer sampleSize
)
公共静态LinkedHashMap getCommonProperties
(
@NotEmpty@NotNull字符串端点,
@NotEmpty@NotNull字符串,其中,
@范围(最小值=0,最大值=1)双阈值,
@最小(1)个整数maxResultSize,
@最小(1)整数采样
)

我不知道OVal框架,但我知道AspectJ和Eclipse工具已经成熟。由于编织过程的原因,编译时间会稍长一些,但可能不会明显延长

我的建议是,如果您发现该框架对您有所帮助,那么它值得使用


如果您能告诉我启动时的错误是什么,那么也许我们可以找到一种方法,让您不再了解它。

我不知道椭圆形框架,但我知道AspectJ和Eclipse工具已经成熟。由于编织过程的原因,编译时间会稍长一些,但可能不会明显延长

我的建议是,如果您发现该框架对您有所帮助,那么它值得使用


如果您能告诉我启动时的错误是什么,那么也许我们可以找到一种方法,这样您就不会再看到它了。

OVal本身不需要使用AspectJ。仅当您希望将其用于合同编程时,例如自动方法参数验证。如果不想使用AspectJ,可以使用Spring AOP作为替代方案来启用Spring托管服务的方法参数验证,请参阅OVal不需要使用AspectJ本身。仅当您希望将其用于合同编程时,例如自动方法参数验证。如果您不想使用AspectJ,可以使用Spring AOP作为替代方案来启用Spring托管服务的方法参数验证,请参见

非常感谢您的建议!通常,我现在无法获取错误,但我将在下次获取错误时发布:-)好的,我现在记录了问题。你知道如何修复它吗?这是编译器引发的编译器异常。看起来AspectJ无法处理方法声明中的某些内容。最好的办法是为此提交错误报告。像这样的问题通常可以很快解决。非常感谢您的建议!通常,我现在无法获取错误,但我将在下次获取错误时发布:-)好的,我现在记录了问题。你知道如何修复它吗?这是编译器引发的编译器异常。看起来AspectJ无法处理方法声明中的某些内容。最好的办法是为此提交错误报告。像这样的问题通常可以很快解决。事实上,OVal只用于自动方法参数验证,所以不幸的是,我不能跳过AspectJ。关于Spring AOP:如果我不使用Spring,那么仅仅为了验证而包含Spring AOP是值得的,还是需要很多时间和资源才能集成到普通Java应用程序中?Spring AOP使用动态代理实例,这有一些限制,例如,它只适用于公共方法,您需要通过Spring检索对象,这意味着您不能使用“new”关键字来实例化对象。然而,我个人在我的所有项目(客户端、服务器、cmd行)中都使用Spring,并且发现它非常有用。关于您得到的NPE,您是否尝试过他们在这里描述的解决方法?事实上,OVal只用于自动方法参数验证,所以不幸的是,我不能跳过AspectJ。关于Spring AOP:如果我不使用Spring,那么仅仅为了验证而包含Spring AOP是值得的,还是需要很多时间和资源才能集成到普通Java应用程序中?Spring AOP使用动态代理实例,这有一些限制,例如,它只适用于公共方法,您需要通过Spring检索对象,这意味着您不能使用“new”关键字来实例化对象。然而,我个人在我的所有项目(客户端、服务器、cmd行)中都使用Spring,并且发现它非常有用。关于您得到的NPE,您是否尝试过他们在这里描述的解决方法?