English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

アノテーションベースのコンポーネントスキャンの詳細解説

コンポーネントスキャンを使用する場合、XML設定でスキャンするパスを指定する必要があります

<context:component-scan back-package="yangjq.test">

コンテナのインスタンス化時にyangjq.testパッケージおよびそのサブパッケージのすべてのコンポーネントクラスをスキャンします。

これらのコンポーネントクラスがスキャンされるのは、クラス定義の前に以下のアノテーションマークがある場合のみです
- @Component 通用アノテーション
- @Name 通用アノテーション
- @Repository 持続可能レイヤコンポーネントアノテーション
- @Service ビジネスレイヤコンポーネントアノテーション
- @Controller コントローラーレイヤコンポーネントアノテーション

命名

コンポーネントのスキャンプロセスでは、デフォルトのID値(小文字で始まるクラス名)が生成されますが、アノテーションマーク内でID値をカスタマイズすることもできます。例えば:

//これはデフォルトのIDで、値はOracleUserDaoです
@Repository
public class OracleUserDao implements UserDao{
}
//これはカスタムIDで、値はloginServiceです
@Service("loginService")
public class UserService{
}

コンポーネントの範囲

Springで管理されるコンポーネントは通常デフォルトの範囲は"singleton"ですが、他の範囲が必要な場合は@Scopeアノテーションを使用し、アノテーション内で範囲の名前を提供するだけで良いです。

@Scope("prototype")
@Repository
public class OracleUserDao implements UserDao{
}

初期化と破棄

@PostConstructおよび@PreDestroyアノテーションは、初期化および破棄のカールバックメソッドを指定するために使用されます。例えば:

public class ExampleBean{
	@PostConstruct
	  public void init(){
		//.......初期化
	}
	@PreDestroy
	  public void destroy(){
		//........破棄
	}
}

依存関係注入関係を持つBeanのアノテーション

これらのいずれかを使用して依存関係注入を実現できます

- @Resource
- @AutoWired/@Qualifier
- @Inject/@Named

通常、@Resourceがよく使用されます。@Resourceについて説明します。他のものを使用する場合は、使用時に検索してください
@Resource アノテーションはフィールド定義やsetterメソッドの定義の前に使用できます。デフォルトでは、まず名前で一致する注入が行われ、次にタイプで一致する注入が行われます

public class UserSerivce{
	//@Resource これはフィールド定義に使用されます
	private UserDao userDao;
	@Resource  //これはsetterメソッドの前に使用されます
	public void setUserDao(UserDao dao){
		this.UserDao=dao;
	}
}

複数のマッチングBeanがある場合、注入がエラーが発生します。名前を明示的に指定することができます。例えば、@Resource(name="exampleDao").

まとめ

これで本文における注釈ベースのコンポーネントスキャンの詳細な内容はすべて終わります。皆様に役立つことを願っています。興味を持たれた方、本サイトの他の関連トピックもご覧ください。不十分な点があれば、コメントをお願いします。皆様のサポートに感謝します。

声明:本文の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、本サイトは所有権を有しておらず、編集も行われていません。著作権侵害が疑われる内容がある場合は、メールを送信して:notice#oldtoolbag.com(メールを送信する際、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認がとりたいとされると、本サイトは直ちに侵害が疑われるコンテンツを削除します。)

おすすめ