当前位置: 首页 > 知识库问答 >
问题:

@Guarded未验证@NotNull构造函数字段

巩俊远
2023-03-14

我试图使用Oval1.84来绕过一些没有样板的验证约束。当我用@NotNull(javax.validation.constraint和net.sf.oval.validator)标记字段时,验证就可以工作了。

但在对方法和构造函数参数实现constarints的情况下不起作用。

共有1个答案

华良才
2023-03-14

参数验证需要使用某种拦截字节码的方法调用。OVal为AspectJ和Spring AOP提供了现成的使用实现。

如何将它与AspectJ一起使用,请参见http://oval.sourceforge.net/userguide.html#Programming-by-Contract

在https://svn.code.sf.net/p/oval/code/trunk/src/test/java/net/sf/oval/test/integration/Spring/springaopalliancetest.java的测试用例中概述了Spring AOP的用法

<bean id="myService" class="com.example.MyService" />
<bean id="ovalGuardInterceptor" class="net.sf.oval.guard.GuardInterceptor" />
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <property name="proxyTargetClass" value="false" />
    <property name="interceptorNames">
        <list>
            <value>ovalGuardInterceptor</value>
        </list>
    </property>
    <!-- the next line tells which beans you want to use validation for -->
    <property name="beanNames" value="myService" />
</bean>
 类似资料:
  • 问题内容: 如何使用Hibernate验证程序来验证构造函数或方法中的参数?我希望在ValueObject创建之前进行验证,因此除非所有参数都有效,否则我可以引发异常而不创建对象。 基本上,我正在尝试使用注释,而不是尽可能执行以下操作: 我试过遵循这样的文档,虽然看起来似乎有效,但仍然会导致创建对象。 将注释添加到构造函数参数似乎无效 我如何创建对象: 验证器: 问题答案: 对于找到此帖子的其他任

  • 我无法仅使用注释运行构造函数参数验证。 我的代码: 我希望当我做一些服务时 我得到了ConstraintViolationException,因为@NotNull,但这不起作用。 当我手动触发验证时,我唯一能让它工作的变体如下: 但这并不合适。 我试图创建TestConstructorLevel类作为Spring bean,但没有任何改变。 所以我的问题是:我需要使用什么注释来触发构造函数的验证。

  • 我有一个接口,它在两个地方定义如下: 我的客户端实现类没有任何注释,只有必需的构造函数。在这种情况下,如何限定正确的接口实现用法?我不想使用,因为在我的例子中,将其中一个用法命名为primary在语义上是不正确的(它们在某种意义上是相等的)。我需要用相同的实现类传递相同的接口,但针对受尊敬的客户机的特定用例进行了不同的配置。我想命名一个参数就足够了,通过这个参数我将实现注入到bean创建方法中,但

  • 在.citydoor.imports.catalog.tools中打包;

  • 问题内容: 我已经加载了内容模块,我得到的具体错误是: 有什么想法吗?我是从以下教程中获得的:http : //developer.android.com/guide/topics/ui/notifiers/notifications.html 问题答案: 更改此: 至 发生错误是因为在这种情况下,它引用的实例,但构造函数需要一个。您必须传递的上下文是对活动本身的引用,因此您必须使用显式访问它。