2017-04-23 11 views
0

私は春のブートアプリケーションの春のセキュリティをカスタマイズしました。カスタムアカウントリポジトリがアノテーションなしでBeanになる方法は?

私は、カスタムアカウントのリポジトリを使用します。

import org.springframework.data.jpa.repository.JpaRepository; 
import com.boot.cut_costs.config.security.CustomUserDetails; 

public interface AccountRepository extends JpaRepository<CustomUserDetails, String>{ 
    public CustomUserDetails findByUsername(String username); 
} 

あなたが見ることができるように、私はそれのために任意のアノテーションを使用しないでください。しかし、他のクラスでは、Beanとしてアクセスできますか?どのように可能ですか?

答えて

1

他のクラスより上位のルートパッケージにスプリングブートとmainアプリケーションクラスを使用している場合、Beanクラスは自動的にスキャンされ検出され、これについてはhereと表示されます。

@SpringBootApplication注釈は @Configuration@EnableAutoConfiguration@ComponentScanを使用するのと同じです。 また、@EnableAutoConfigurationアノテーションは、暗黙のうちに特定の項目のベース 「検索パッケージ」を定義します。

+0

1.しかし、私はどこでもそれを使用したことがありません。私は '@ SpringBootApplication'と' @ EnableWebSecurity'を他のクラスで使っていました。 2.「注釈付き構成クラスのパッケージ」の意味は何ですか? –

+0

つまり、基本的に、アノテーションが付いていなくても 'JpaRepository'を実装しているインターフェースを探しているのですよね? –

+1

はい、あなたは正しいです – developer

1

この注釈を確認してください。@EnableJpaRepositories@Configurationクラスのクラスレベル注釈として使用している可能性があります。 JPAリポジトリを有効にするdocs

Annotationから

。デフォルトでは、Springデータリポジトリの注釈付き構成クラスのパッケージをスキャンします。

例:

@Configuration 
@EnableJpaRepositories(basePackages = {"xxx.xxx.xxx.core.dao"}) 
@EnableTransactionManagement 
public class DatabaseConfig{ 

} 
+0

まあ、私はそれを使用しないで動作します!私の質問は、それが注釈されていない場合、どのように/なぜ動作するのかということでした。 –

+0

どの設定クラスでも '@ EnableJpaRepositories'を使用していませんか? –

+0

いいえ、それはanywgereで使用されていません。 –

関連する問題