FrontController와 Spring Container 사용의 차이?

image.png

Spring Container를 사용할때 FrontController가 직접 new 키워드를 사용해서 오브젝트를 생성하는 것과 어떤 차이가 있을까?

Spring Container가 앞에 하나 붙고 getBean 메서드로 오브젝트를 전달받아서 사용하는 차이 밖에 없을까?

여러가지 중요한 점은 스프링 컨테이너가 할 수 있는 일들을 이후에 계속 적용가능한 기본구조가 구성이 되었다는 점이 의미가 있음

스프링 컨테이너

기본적으로 안에 어떤 타입의 오브젝트를 생성할 때 딱 한번만 만듦(싱글톤)

→ 스프링 컨테이너가 가지고있는 오브젝트를 필요로하는 서블릿들에서 getBean을 통해서 전달 받기를 원하는 경우 요청할 때마다 새로운 오브젝트를 만들어서 전달하는 것이 아닌 처음에 만들어둔 오브젝트를 전달해줌

FrontController와 또 다른 Servletdl 같은 오브젝트를 사용함

스프링 컨테이너 == 싱글톤 레지스트리

싱글톤 패턴을 사용하지 않고도 마치 싱글톤 패턴을 쓰는 것처럼 매 요청마다 새로운 오브젝트를 만드는 대신

한 번 만들어놨던 오브젝트를 계속 재사용하게 해주는 것

SimpleHelloService

HelloController에서 하나의 요청을 무조건 다 처리하는게 좋겠지만 그렇지 않을 경우도 많을 것

역할에 따라서 오브젝트를 분리해서 만들고 하나의 오브젝트가 어떤 기능이 필요하면 다른 오브젝트에게 기능을 수행해달라고 요청하는 방식으로 동작하게 만들 수 있음

image.png