728x90
현재 Spring에서 아래와 같이 3가지 DI 방식을 사용하고 있다.
- 가장 흔한 필드 주입방식: Field Injection 방식 (비 권장)
@Controller public class BoardController { @Autowired private IBoardItemService boardItemService; }
- 수정자 주입: Setter Injection
private IBoardItemService boardItemService; @Autowired // 4.3 부터 생략 가능 public void SetIBoardItemService (MessageSource messageSource){ this.messageSource = messageSource; }
- 생성자 주입: 가장 선호하는 방식 ( Class 상단에 @RequiredArgsConstructor 추가 , @AllArgsConstructor 는 지운다!)
@RequiredArgsConstructor public class BoardController { private final IBoardItemService boardItemService; }
Lombok 없이 사용시:
public class BoardController { private final IBoardItemService boardItemService; // Immutability 이슈까지 해결하고 싶다면 private final 접근자 붙여주기 @Autowired public BoardController(IBoardItemService boardItemService) { this.boardItemService = boardItemService; } }
내저장소 바로가기 luxury515
'Back-end > 기타' 카테고리의 다른 글
on duplicate key update (0) | 2023.04.16 |
---|---|
AWS KMS 관련 세팅 (0) | 2023.04.14 |
plantUml preview 갑자기 작동안될때. (0) | 2023.04.14 |
gradle bootrun 작동 에러 (0) | 2023.04.14 |
radius(레이디스)서버 (0) | 2023.04.14 |