2014-11-22 3 views
0

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

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

вот моя конфигурация пружины.

<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 { 

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

ответ

0

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

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

@Override 
public ProductGetResponse getProductBulk(@TestValidator ProductGetKey productGetKey) throws ItemWrapperApiException 
Смежные вопросы