@Bean
@Component
어노테이션을 붙이면
Spring Ioc 컨테이너가 자동으로 해당 객체 생성
우리는 단 한번도 new(생성자)를 써서 만들지 않음
private->객체가 생성되고 나서 setter로 수정가능함
private final->객체가 생성되고 나서 변경 불가능->스프링에게 객체 생성 시 강제로 주입하라고 시키는 것
스프링 IOC 컨테이너가 관리
커피숍을 예를들어서
@Component->직원
@ComponentScan->직원출근
@Autowired->다른직원이 요청할 때/고객이 요청할 때
@Controller->계산대
new->클라이언트가 요청시마다 new를 하면 비용적으로 매우 손실이 크다
그래서
@Component
@ComponentScan으로 미리 모두 다 준비 해놓고,필요하면 준비된 객체를 제공한다