この注入方法は適切ではありません。設定ファイルにエラーがある場合、プログラムはエラー メッセージを表示しません。これは初心者にとって非常に不親切です。
1. プロジェクトの作成
スタートアップ クラスとメイン メソッドの作成<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.3.RELEASE</version> </dependency> </dependencies>
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.3.RELEASE</version> </dependency> </dependencies>
@Controller [コントローラー] @Service [サービス] @Repository [ウェアハウス] @Configuration [構成/レイアウト] @Component [コンポーネント] 2.1コントローラー
#以前は id パラメーターを渡すことでオブジェクトを取得できましたが、手動で ID を追加するために Bean の行を追加していましたが、今ではアノテーションを使用する場合、クラス型のみを使用できますか?
アノテーションを使用して Bean オブジェクトを挿入する場合、ID は実際にはデフォルトでクラス名のキャメルケース形式になります:
理由については最初は説明しません。 については後述します。
簡単な間違い
:以前に設定ファイルに Bean オブジェクト検索用のルート ディレクトリを追加しました。つまり、検索はこのディレクトリから下方向に開始されますが、上方向には開始されません :
下位ディレクトリ
##上位ディレクトリ
#2.2 サービス
#2.3 リポジトリ
2.4 構成社内には全員が責任を負っています領域が異なるため、使用されるクラス アノテーションも異なりますが、アノテーションの 5 つの主要カテゴリの本質は同じです。
2 つのクラス アノテーションを通して、他の 4 つのアノテーションが Component アノテーションを導入するメソッドであることが明確にわかります。コンポーネントは、他の 4 つのクラス アノテーションの親です。では、コンポーネントは何をするのでしょうか?ただ、アノテーションを付けるときに他の 4 つのクラスに投げ込むのは簡単ではありません~
2.7 ID がデフォルトで小さなラクダ番号になるのはなぜですか
グローバル検索を使用します:#AnnotationBeanNameGenerator を検索:
##テスト:
2.8 Bean アノテーションの使用Bean アノテーションはメソッド アノテーションであり、メソッドで使用される場合、返されたオブジェクトも Spring によって挿入されますが、5 つの主要カテゴリのアノテーションとともに使用する必要があります (どれでも使用できます)id はメソッド名です。 2.8.1 Bean の名前変更
##2.8.2 複数の名前変更
Note: name 属性を使用して名前を変更すると、元のメソッド名はその効果を失います。つまり、変更されたメソッドのみが使用できることになります。名前は次のとおりです。 IDとして使用されます。 Bean オブジェクトの取得
#セッター インジェクション
今は問題ないようですが、オブジェクトを作成すると、同じタイプのオブジェクトが複数回挿入されている場合:
現時点では、選択したオブジェクトを正確に見つける必要があります。 タイプ名
:##1.2リソース
1.3 2つの違い
: Autowired アノテーションは、最初に、すべてのタイプのオブジェクトのタイプをクエリします。ただし、Autowired は一度に 1 つのオブジェクトしか挿入できないため、同じタイプのオブジェクトが複数回挿入されるとエラーが報告されます。 Qualifier アノテーションは基本的に、クエリの結果をフィルタリングします。
2. コンストラクター インジェクション
または Autowired アノテーションを使用します:
##ps
: コンストラクターが 1 つだけの場合、Autowired は省略できます。
ただし、コンストラクターが 3 つ以上ある場合は省略できません。 #Setter インジェクションまたは Autowired 経由# リソース は Setter インジェクションもサポートしています。
プロパティ インジェクション、コンストラクター インジェクション、セッター インジェクションの違いは何ですか?
以上がJava Spring での読み取りおよび書き込み操作の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。