@Component는 내가 만든 클래스에 Bean을 주입하는역할을 한다.

이때 객체가 생성된다면 싱글톤 패턴으로 생성이 된다.

** Spring Framework의 도움을 받으면 단점을 줄이고 장점을 사용할 수 있다.

*@Controller / @Service / @Repository 등의 어노테이션을 포함한다. 싱글톤패턴?

  • 인스턴스(객체)가 오직 한개만 생성된다
  • 장점 : 메모리낭비를 방지한다. 이미 생성된 객체를 재사용하기 때문에 속도가 빠르며 전역으로 사용되는 인스턴스이기 때문에 데이터공유가 쉽다.
  • 단점 : 테스트에 어려움이있다. 자식클래스를 만들수없다. 내부의 상태를 변경하기 어렵다.

이때, @Component와 @Controller의 차이점은 무엇일까?

 - 컴포넌트와 컨트롤러 모두 Bean객체를 등록하지만
컨트롤러는 url과 클래스를 이어주는 역할을 할 수 있다.