簡體   English   中英

Spring依賴注入在ConstraintValidator中不起作用

[英]Spring dependency injection doesn't work in ConstraintValidator

我正在嘗試通過@Autowired將我的服務用於自定義ContextValidator批注。 我在關於SOF的舊問題中尋求幫助,但是很不幸,所以我創建了一個新的。 我的目標是在其上方帶有注釋@MyId的有效bean的屬性。

這是我的代碼:

@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 { };
}

守望者級:

@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始終為null。 你能幫我解決嗎? 我正在使用Spring Boot 1.5。

使用@Qualifier注釋告訴Spring您的實現類。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM