..
Spring Framework 핵심 구동 프로세스
1. 서블릿 컨테이너 및 스프링 부팅 순서
전통적인 자바 웹 환경에서 스프링 프레임워크가 구동되는 표준 절차입니다.
web.xml로딩: WAS(Tomcat 등)가 시작되면서 설정 파일을 읽어 들입니다.- ContextLoaderListener 생성: 루트 컨텍스트(Root WebApplicationContext)를 생성하여 빈(Bean)들을 메모리에 올립니다.
- DispatcherServlet 설정: 클라이언트의 요청을 가장 먼저 받는 프론트 컨트롤러가 준비됩니다.
2. 권장하는 개발 패턴: @RequiredArgsConstructor
전통적인 생성자 주입 방식은 코드가 길어지고 가독성이 떨어집니다. 롬복(Lombok)의 @RequiredArgsConstructor를 활용하면 훨씬 깔끔하게 의존성 주입을 처리할 수 있습니다.
AS-IS (전통적인 생성자 주입)
@Controller
public class UserController {
private UserService userService;
public UserController(UserService userService){
this.userService = userService;
}
}
TO-BE (Modern Spring Style)
@Controller
@RequiredArgsConstructor
public class UserController {
// final 키워드를 붙이면 롬복이 생성자를 자동으로 만들어줍니다.
private final UserService userService;
}
생성자 주입은 빈 생성 시점에 의존성을 확정하므로 불변성을 확보할 수 있고, 테스트 코드 작성 시에도 mock 객체를 주입하기 매우 유리하여 스프링 진영에서 가장 권장하는 방식입니다.