@Guarded не проверяет поля конструктора @NotNull

Я пытаюсь использовать Oval 1.84 для обхода некоторых ограничений проверки без шаблонов. Проверка работает, когда я отмечаю поля с помощью @NotNull (javax.validation.constraint и net.sf.oval.validator).

Но не работает в случае реализации констант для параметров метода и конструктора.

1 ответ

Проверка параметров требует использования некоторого вызова метода, перехватывающего байт-код. OVal предоставляет готовые реализации для AspectJ и Spring AOP.

С AspectJ

Как использовать его с AspectJ подробно описано на http://oval.sourceforge.net/userguide.html

С весны АОП

Использование Spring AOP описано в тестовом примере по адресу https://svn.code.sf.net/p/oval/code/trunk/src/test/java/net/sf/oval/test/integration/spring/SpringAOPAllianceTest.java

В Spring вам нужно настроить bean-компоненты, для которых вы хотите иметь проверку параметров метода, например:

<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>
Другие вопросы по тегам