gpt4 book ai didi

java - Spring 依赖注入(inject)在 ConstraintValidator 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:13:50 24 4
gpt4 key购买 nike

我正在尝试使用 @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。

最佳答案

使用@Qualifier 注释来告诉 Spring 有关您的实现类的信息。

@Autowired
@Qualifier("testService")
private ITestService testService;

关于java - Spring 依赖注入(inject)在 ConstraintValidator 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com