我正在尝试使用@Autowired将我的服务应用到自定义ContextValidator注释中。我在SOF的老问题上寻找一些帮助,但我很不幸,所以我创建了一个新的。我的目标是有效bean的属性,上面有@MyId注释。
下面是我的代码:
@Documented
@Constraint(validatedBy = { MyIdValidator.class })
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface MyIdSpring {
String message() default "Invalid ID!";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
Valdiator类:
@Configurable(autowire = Autowire.BY_TYPE, dependencyCheck = true)
public class MyIdValidator implements ConstraintValidator<MyId, TestID> {
@Autowired
private ITestService testService;
@Override
public void initialize(MyId constraintAnnotation) {
}
@Override
public boolean isValid(TestID value, ConstraintValidatorContext context) {
System.out.println(testService);
return false;
}
}
配置:
@Configuration
public class ValidatorConfig {
@Bean
public LocalValidatorFactoryBean validator() {
LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
return bean;
}
}
服务:
@Service
public class TestService implements ITestService { .. }
ITestService始终为空。你能帮我修一下吗?我使用的是spring boot 1.5。
发布于 2018-08-23 03:58:09
使用注解告诉Spring你的实现类。
@Autowired
@Qualifier("testService")
private ITestService testService;
https://stackoverflow.com/questions/51972861
复制相似问题