问题描述
我有一个spring boot项目,一个使用javax验证API的bean。
我正在尝试在自定义验证器中为bean注入服务。但是服务对象为空。
我找不到使用Spring ConstraintValidator的完整示例,也无法理解某些人在另一个主题中为集成测试所做的配置。
我想拥有一个带有构造函数注入的验证器(我不想使用@Autowired nore javax @Inject):
@Component
public class CustomValidator implements ConstraintValidator<ValidCustomValidator,CustomObj> {
private ErreurService erreurService;
public CustomValidator(ErreurService erreurService) {
this.erreurService=erreurService;
}
@Override
public boolean isValid(CustomObj customObj,ConstraintValidatorContext context) {
erreurService.getMessages("");
return false;
}
}
** ErreurService **
@Service("ErreurService")
@Transactional
public class ErreurServiceImpl implements ErreurService {//...}
通过这种方法,我得到了一个异常HV000064: Unable to instantiate ConstraintValidator
我尝试使用@Autowired进行操作,但是总是得到NPE。 你能帮我吗?
解决方法
您是否在@Service
实现类上放置了ErreurService
注释?是来自指定ComponentScan
的软件包中的吗?