Spring bootのDIに関して、privateメソッドからはDIされないのでしょうか?

聞きたいこと

Spring bootのDIに関して、privateメソッドから呼び出す際の仕様について

発生している問題・エラーメッセージ

privateメソッドからサービスクラスをDIしようとすると、「NullPointerException」が発生してしまいました。 こちらのメソッド自体は、privateですが、DI元のクラスとメソッドはpublicになっております。 publicメソッドからDIをすれば問題なくDIされることを確認済ですが、privateメソッドからDIができない理由等、ご教示いただけますと幸いです。

該当のソースコード

java

@Controllerpublic class TestController {@AutowiredTestService testService; ←このDIがリクエストを受けた際にnullになります。 ・・・・ } @RequestMapping(value = "/register_test1")  public String fileTest1(Model model) {・・・・ testService.setTest("");  ←こちらのpublicメソッドからはDIができました return "test1";} @RequestMapping(value = "/register_test2") private String fileTest2(Model model) {・・・・ testService.setTest("");  ←こちらのprivateメソッドからはDIができませんでした return "test2";}

サービスクラス

java

@Servicepublic class TestService { public Object setTest() { ・・・・ return object; }}

試したこと

・該当サービスクラスをnewしていないかどうか
・mavenクリーン、プロジェクトの更新

似たような質問者様の回答

以下に、privateメソッドを試験する際に、DIが実施されず、NullPointExceptionが発生した旨の記述がありました。(根本的な理由は記載されていないようでした。。)

このような原因がわからず、理由が知りたく質問させていただきました。
ご回答いただけますと幸いです。

https://teratail.com/questions/123978

コメントを投稿

0 コメント