2017-06-08 22 views
0

Jwtトークンを使用してOAuth実装を開発しています。 それは一種の奇妙だが、クラスTokenAuthenticationServiceのために、私は別のパッケージにAutowiredにこのクラスをしようとすると、私は Consider defining a bean of type 'com.company.security.TokenAuthenticationService' in your configuration. を取得し、私は回避策を行なったし、そのクラスに@Bean TokenAuthenticationServiceを追加しました。
TokenAuthenticationServiceクラスのインターフェイスを初期化しようとすると、そのインターフェイスに対して同じタイプのエラーが発生します。 Consider defining a bean of type 'com.company.security.UserService' in your configuration. Spring Boot:@Autowiredがクラスのいずれかで動作しない

ComponentScan注釈は、私がここに、なぜ行方不明です何@ComponentScan({"com.company"})

のように設定されていますか?

+0

'TokenAuthentificationService'クラスはあなたのものですか?それは '@ Component'または等価注釈で注釈されていますか? –

答えて

2

プロジェクトでオートワイヤリング用のBeanを定義するには、2つの方法があります。あなたはサードパーティのクラスを使用している場合は、次のことができ

@Service 
public class TokenAuthenticationService { ... } 

:あなたによって定義されたクラスと

、あなたは@Component注釈(または、サービスクラスのために、@Service注釈)この方法を使用することができますコンフィギュレーション・クラスでそれらを設定します。

@Configuration 
public MyProjectConfig { 
    @Bean 
    public ThirdPartyClass serviceClass() { new ThirdPartyClass(); } 
} 

@Bean注釈を使用すると、workroundではないあなただけのトンを必要としています。 Oその目的を理解して...)

この方法でのオートワイヤリングは動作するはずです...

ご注意をdifference between @Component and @Bean annotationsに。

関連する問題