Spring Bootで@RequiredArgsConstructorを使用してコンストラクタインジェクションを使用する
@RequiredArgsConstructorアノテーションをクラスに指定するとfinalなフィールドを初期化するコンストラクタが生成されます。
※@RequiredArgsConstructorアノテーションはfinalをつけないとインジェクションされません
これにより今まで@Autowiredアノテーションでフィールドインジェクションしていたのが不要になります。
以下のようなイメージです。
@Service @RequiredArgsConstructor public class DemoService { @NonNull private final EmployeeRepository repository;// finalをつけること // 省略
これでrepositoryがコンストラクタインジェクションされてDIされるようになります。
もっとlombokを使いたおしたい場合は「Lombokの使い方」を参照ください。
参考サイト
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント