Проверка овального пользовательского метода - предварительное условие

Я использую овальную проверку Fwk + Spring. Я хочу проверить свой метод бизнес-логики с помощью аннотаций. Я нашел хороший пример на Овальной странице. http://best-practice-software-engineering.ifs.tuwien.ac.at/repository/net/sf/oval/oval/1.61/tmp/docs/userguide.html

для создания пользовательских проверок. Но приведенный пример работает после выполнения метода, а не до. Есть ли способ добиться того же, что и в примере, но выполненного раньше?

вот моя весенняя конфигурация.

<bean id="ovalGuardInterceptor" class="net.sf.oval.guard.GuardInterceptor" />

<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <property name="proxyTargetClass" value="true" />
    <property name="beanNames" value="productGetBusinessLogic" />
    <property name="interceptorNames"><list><value>ovalGuardInterceptor</value></list></property>
</bean>

это мой чек класс

import net.sf.oval.Validator;
import net.sf.oval.configuration.annotation.AbstractAnnotationCheck;
import net.sf.oval.context.OValContext;

public class TestValidatorCheck extends AbstractAnnotationCheck<TestValidator> {
    public boolean isSatisfied(Object validatedObject, Object valueToValidate, OValContext context,    Validator validator) {
    if (valueToValidate == null)
        return true;
    String val = valueToValidate.toString();
    return val.equals(val.toUpperCase());
    }
}

Это мой класс аннотаций

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
@Documented
@net.sf.oval.configuration.annotation.Constraint(checkWith = TestValidatorCheck.class)
public @interface TestValidator {
 /**
 * Message to be used for the ConstraintsViolatedException
 * 
 * @see ConstraintsViolatedException
 */
 String message() default "must be upper case";
}

и это, как метод аннотирован

@Override
@TestValidator
public ProductGetResponse getProductBulk(ProductGetKey productGetKey) throws ItemWrapperApiException {

Дайте мне знать, что мне здесь не хватает. Благодарю.

1 ответ

При добавлении аннотации ограничения он объявляет его как ограничение для возвращаемого значения.

Для проверки аргумента необходимо указать аннотацию непосредственно в параметре метода, который должен быть проверен, то есть:

@Override
public ProductGetResponse getProductBulk(@TestValidator ProductGetKey productGetKey) throws ItemWrapperApiException
Другие вопросы по тегам