2016-11-21 6 views
0

私は単純な非MVCプロジェクトを作成し、spring-boot-starter-validation依存関係を追加しました。 javax.validation.Validatorをインジェクトしようとしたときにエラーorg.springframework.beans.factory.NoSuchBeanDefinitionExceptionが発生しました。スプリングスターター検証とバリデーター注入

spring-boot-starter-validationはデフォルトのValidator、つまりLocalValidatorFactoryBeanを提供していないことを意味しますか?通常のプロジェクトのように、スプリングブートなしで自分で作成する必要がありますか?

@Component 
public class ExampleService{ 

    @Autowired 
    private Validator validator; 

    public void someMethod(){ 
      //validation 
    } 

} 

Validatorがjavax.validationかorg.springframework.validationパッケージかに関係なく、注入は失敗します。

+0

コードとログを追加してください:どの豆が欠けていますか? – terjekid

+0

私は最も簡単な例を追加しました。 Spring Starter Project>検証の依存関係、およびこの単純なコンポーネントです。注射が失敗する。 – swch

答えて

0

ませんBeansはあなたがまっすぐに馬の口から、このスターターのために、以下のrationaleを参照してくださいNoSuchBeanDefinitionException

を経験しているので、なぜspring-boot-starter-validationで箱から出して提供されています。以前は

、唯一のスターターをその提供されたバリデーションは spring-boot-starter-webで、Hibernate Validatorと TomcatのEL実装が含まれていました。これにより、Web以外のアプリケーションを作成したユーザは、アプリケーション自身の依存関係を把握することができました。 は、Hibernate Validatorが EL実装のために必要とするために、それらを持ち上げるため、時には困難に陥るでしょう。

このコミットは、新しい起動方法を追加します。 は、Hibernate ValidatorとTomcatのEL実装の両方を提供するspring-boot-starter-validationです。 spring-boot-starter-webは、Hibernate Validatorに直接依存するのではなく、このスターター に依存するように更新されました。

関連する問題