개요
의존성이 뭔데?
//HelloWorld.java
classHelloWorld {
private SayHello sayHello;
publicHelloWorld() {
this.sayHello =new SayHello();
}
publicstartHelloWorld() {
this.sayHello.hello();
}
}
@Controller
publicclassBoardController {
@Autowiredprivate IBoardItemService boardItemService;
/* 이하 생략 */
}
Spring Team recommends: “Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies”.
위의 예제를 필드 주입에서 생성자 주입으로 바꿔보겠다.
@Controller
publicclassBoardController {
privatefinal IBoardItemService boardItemService;
publicBoardController(IBoardItemService boardItemService) {
this.boardItemService = boardItemService;
}
/* 이하 생략 */
}
@Controller
@RequiredArgsConstructor
publicclassBoardController {
privatefinal IBoardItemService boardItemService;
/* 이하 생략 */
}