패키지 이름을 정해진 경로대로 설정해야하는 이유
스프링은 실행초기에 컴파운트 스캔을 한다.
패키지를 스캔해서 필요한 것들을 메모리에 로드한다(IOC)
스프링 컨테이너에 모든객체에 대한 변수들을 관리한다.
아래 코드를 예시로 들면
@Controller 어노테이션을 정의해주면 스프링이
com.cos.blog 패키지 이하를 스캔해서 모든 파일을 메모리에 new하는 것은 아니다.
특정 어노테이션이 붙어 있는 클래스 파일들을 new해서(ioc) 스프링 컨테이너에 관리해준다.
@Controller
public class BlogControllerTest {
}
최초 입구에서 web.xml이 자기가 할일을 기억하고 할일이 너무많으니 DispatcherServlet에 분배 미리셋팅 해야할 db관련 작업은 contextLoaderListner가 메모리에 띄워놓는다
톰캣을 따로 설치할 필요 없이 바로 실행가능.
스프링부트는 자바 오브젝트를 리턴하게되면 MessageConverter가 jackson이라는 라이브러리를 호출해서 객체를 json으로 변환해서 던져준다.