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;
}
}
'Back-end > Spring&SpringBoot' 카테고리의 다른 글
Request 객체속성 분석 (0) | 2022.12.07 |
---|---|
Spring MVC DataSource 설정[한글깨짐] (0) | 2022.12.07 |
m1 silicon tomcat 경로 (0) | 2022.12.07 |
NullPointException 방지 팁 (0) | 2022.12.07 |
RestController 와 Controller 대하여 아는것 만큼 이빨까보자 (0) | 2022.12.07 |