2016-09-24 96 views
1

我不知道如果我需要一些更多的代碼/關於這個細節,但我已經準備好提供更多的信息,如果需要:)Spring驗證器:無法自動裝配。 「驗證」類型的無豆中

我得到:Could not autowire. No beans of 'Validator' type found。這裏也有類似的問題,但沒有關於Validator。我試圖通過構造函數autowire它,但它仍然是一樣的。我使用Intellij Ultime版本。最新版本spring-boot-starter-xxx-xxx這是目前1.4.1.RELEASE。

@Configuration 
public class RestConfig extends RepositoryRestConfigurerAdapter { 

    @Autowired 
    private Validator validator; 

    @Override 
    public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) { 
     validatingListener.addValidator("beforeCreate", validator); 
     validatingListener.addValidator("beforeSave", validator); 
    } 
} 

編輯:

我改變了我的代碼,這和它的工作。謝謝你的答案..

@Bean 
public Validator validator() { 
    return new LocalValidatorFactoryBean(); 
} 


@Override 
public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) { 
    validatingListener.addValidator("beforeCreate", validator()); 
    validatingListener.addValidator("beforeSave", validator()); 
} 

順便說一句,我只是想知道誰否決了這個問題可以解釋爲什麼他/她這樣做的人嗎?

+0

Plz給你的配置文件以及 –

+0

嗨@JekinKalariya。很抱歉問,但你的配置是什麼意思?我不使用xml配置,只是java註釋。 – oxyt

+0

好,然後給你的驗證器類和組件掃描的地方也你的beans.xml –

回答

1

Spring庫只包含一個用於Validator的接口。您需要向您的項目添加一個實際上實現了驗證框架JSR-303(如Hibernate Validator)的依賴項。

+0

'編譯「org.hibernate:hibernate-validator」' - 在gradle的情況下,這足夠嗎? – dmitryvim

1

正如@rorschach所說的,Spring庫有一個接口。你需要一個實現來使用驗證器。現在它可能是第三方實現或自定義的用戶定義實現。 這裏是LINK,它顯示了Hibernate驗證器和自定義驗證器的例子。