@RequiredArgsConstructor를 통한 의존성 주입

@RequiredArgsConstructor란

@NonNull이나 final이 붙은 필드에 대한 생성자를 생성한다.

  • DI 활용

    Bean의 생성자가 단 하나이며, 생성자의 파라미터 타입이 Bean Container에 등록되어있다면, 이 Bean은 @Autowired없이 의존성 주입이 가능하다.

    특히 의존성이 많아지는 경우 @RequiredArgsConstructor로 간결한 Constructor Injection을 할 수 있다.

      /** @RequiredArgsConstructor 미사용 */
      @Controller
      public class AAAController {
          private final AAAService aaaService;
          private final BBBService bbbService;
          private final CCCService cccService;
    
          public AAAController(AAAService aaaService, BBBService bbbService, CCCService cccService) {
              this.aaaService = aaaService;
              this.bbbService = bbbService;
              this.cccService = cccService;
          }
      }
    
      /** @RequiredArgsConstructor 사용 */
      @Controller
      @RequiredArgsConstructor
      public class AAAController {
          private final AAAService aaaService;
          private final BBBService bbbService;
          private final CCCService cccService;
      }
    
    
  • 참고

    @Value값을 주입 받으려는 경우 Bean을 주입하려는 현상이 나타날 수 있다.

Leave a comment