@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.FIELD})
public @interface Validate {
String value();
}
public interface Validator {
void validate(Object data, String rule) throws ValidationException;
}
public class RequiredValidator implements Validator {
public void validate(Object data, String rule) throws ValidationException {
}
}
public class UserService {
@Validate("required")
public User createUser(@Validate("required") String username, @Validate("required") String password) {
}
}
User user = new User();
ValidationFramework.validate(user);
<bean id="validationFramework" class="com.example.ValidationFramework">
<property name="validator">
<bean id="requiredValidator" class="com.example.RequiredValidator" />
</property>
</bean>