ツールは、静的メソッド呼び出し射出サービスクラスの問題を@Autowiredについて

ここで@Component //セーブ注釈しない(0)
。1パブリッククラスNtClient { 2 / ** 3 *ログ。 4 * /。 5静的な文字列プライベートNtClient.class.getName clazzName =();。 。6 / ** 。7ここで*射出バネ(1)を必要とするサービスを使用するための 8 * /。 9 @Autowired。 10プライベートnotifyTimeService notifyTimeService; 11プライベート静的ntClient ntClient; 12 / **は 13ここで注釈*(2)* /留意されたい 14 @PostConstruct (15公共ボイドINITを){
16 = ntClientこの; 17 ntClient.notifyTimeService = this.notifyTimeService。 18} 。19 / ** 20 *主要な使用シナリオ(3) 21 * /で 22 {パブリック静的ボイドinsertParam(int型のID)である 23 / **である 24 *本明細書の方法を呼び出す(4)なお、 25 * / 26である場合(ntClient.notifyTimeService.deleteNotifyTime(ID) ){ 27} 28} 29}

:注:(0)(2)ntClient =この役割において、この割り当て(注注釈が存在しない場合ntClientヌル)
(1)でスプリング自動注入され、スプリングフレームワークを使用することは非常に一般的な、しかし、静的な方法であればありますこのメソッド呼び出しは、クラスを注入し、注入が「NULL」であることを見出し、スプリングは、静的初期化方法よりも早く注入が、「空」に静的メソッドではなく、されていないないので、元の思想前
   点(2)考えること方法:注意(経由:(あなたがServleサーバーをロードする際@PostConstruct修正方法が実行され、サーバは一度だけ.PostConstruct実行されます実行し、コンストラクタの後に、初期化の前に()メソッドは、.PreDestroy()メソッドが破壊行い、 )メソッドの実行の実行)メソッドpublicボイドINIT後()を(1)注入器から出てくる、そのような割り当てを与えます。これには、コールDAOと、次の注射のサービスには影響しません!
   特殊メソッド静的(3)で処理される(古典は、main()メソッド、モデルベースを考えて、それがメソッド呼び出し内で使用することができる場合)
   (4)このようなモデルの使用は今ntClientの方法のnotifyTimeServiceとして呼び出されることですプロパティは、

ツールは、一般的に静的メソッドであるため、それはまた、静的(サービス)の要件である、サービスツールに注入する必要があります。しかしながら、次の春/ SpringBoot通常の状況は、静的プロパティ(ヌルポインタ例外が報告される)の注入をサポートすることができません。主な理由は:春依存性注入は、設定値、スプリングレベルのオブジェクトベースの依存性注入を注入する方法に実際に依存し、静的プロパティ/静的変数は、実際のクラスに属します。
ここで@Component //セーブ注釈しない(0)
。1パブリッククラスNtClient { 2 / ** 3 *ログ。 4 * /。 5静的な文字列プライベートNtClient.class.getName clazzName =();。 。6 / ** 。7ここで*射出バネ(1)を必要とするサービスを使用するための 8 * /。 9 @Autowired。 10プライベートnotifyTimeService notifyTimeService; 11プライベート静的ntClient ntClient; 12 / **は 13ここで注釈*(2)* /留意されたい 14 @PostConstruct (15公共ボイドINITを){
16 = ntClientこの; 17 ntClient.notifyTimeService = this.notifyTimeService。 18} 19 / ** 20 *主要な使用シナリオは、(3) 21 * /である {22はパブリック静的ボイドinsertParam(int型のID)である 23 / **である (図4)ことが本明細書の方法を呼び出す注* 24 * / 25 26(ntClient IFです。 notifyTimeService.deleteNotifyTime(ID)){ 27} 28} 29}

:注:(0)(2)ntClient =この役割において、この割り当て(注注釈が存在しない場合ntClientヌル)
(1)でスプリング自動注入され、スプリングフレームワークを使用することは非常に一般的な、しかし、静的な方法であればありますこのメソッド呼び出しは、クラスを注入し、注入が「NULL」であることを見出し、スプリングは、静的初期化方法よりも早く注入が、「空」に静的メソッドではなく、されていないないので、元の思想前
   点(2)考えること方法:注意(経由:(あなたがServleサーバーをロードする際@PostConstruct修正方法が実行され、サーバは一度だけ.PostConstruct実行されます実行し、コンストラクタの後に、初期化の前に()メソッドは、.PreDestroy()メソッドが破壊行い、 )メソッドの実行の実行)メソッドpublicボイドINIT後()を(1)注入器から出てくる、そのような割り当てを与えます。これには、コールDAOと、次の注射のサービスには影響しません!
   特殊メソッド静的(3)で処理される(古典は、main()メソッド、モデルベースを考えて、それがメソッド呼び出し内で使用することができる場合)
   (4)このようなモデルの使用は今ntClientの方法のnotifyTimeServiceとして呼び出されることですプロパティは、

ツールは、一般的に静的メソッドであるため、それはまた、静的(サービス)の要件である、サービスツールに注入する必要があります。しかしながら、次の春/ SpringBoot通常の状況は、静的プロパティ(ヌルポインタ例外が報告される)の注入をサポートすることができません。主な理由は:春依存性注入は、設定値、スプリングレベルのオブジェクトベースの依存性注入を注入する方法に実際に依存し、静的プロパティ/静的変数は、実際のクラスに属します。

おすすめ

転載: www.cnblogs.com/jpfss/p/11271473.html
おすすめ