: 이 클래스 만들어뒀으니까,
객체를 만들어서, 컨테이너에 넣어서 니가 관리해줘


Spring 컨테이너 시작: 스프링 애플리케이션이 시작되면 스프링 컨테이너가 초기화
컴포넌트 스캔: 난 스프링 애노테이션을 붙은 코드만 다 읽는다! 스프링 컨테이너는 컴포넌트 스캔(Component Scanning)을 통해 @Component 애노테이션이 붙은 클래스를 찾아 빈으로 등록
빈 생성: @Component 애노테이션이 붙은 클래스를 발견하면, 스프링 컨테이너는 해당 클래스의 객체를 생성하고, 이때 클래스의 기본 생성자가 호출
생성자 호출: House 클래스의 생성자가 호출되면서 System.out.println("Created! House Bean!");가 실행되고, 이 메시지가 콘솔에 출력
xml파일-> @annotation으로 component scan설정이 가능하게 함.
xml 파일 형식이 자바 객체 지향 파일로 변환됨
application.java와 다른 패키지에 존재하면, component scan으로 인한 객체 생성이 되지 않음

문자열이 위험한 이유: 문자열에 오타가 나도 스프링이나 자바는 알지 못하기 때문이다.
1️⃣번 방법

누가 먼저 스프링 빈이 되나요?
House, House가 있어야 Person생성이 되기 때문이다.
스프링은 뭘 보고 Person이 필요한 House를 쏙 넣어줬을까요?
다른 객체 넣어줄 수도 있잖아!
스프링 빈은 타입으로 구별된다!
우린 스프링한테 House 객체가 필요하니깐 넣어줘!
라고 얘기한 적이 있나요?
생성자가 1개일 때, @Autowired 어노테이션이 생략되어 있기 때문에! 우리는 얘기했다..!!
2️⃣번 방법

1️⃣. @Component : 밑에 따라오는 요소까지 영향력을 끼침. class, field, method
2️⃣. @Configuration = 설정 파일
+@Bean
클래스 위에서 사용하며, 이 클래스는 내가 설정파일로 쓸거야 xml대신에 자바코드로 구현할거야! 그러니깐 개발자 너는 설정파일로 이걸 봐야해!
Configuration파일 있고, Bean annotation을 넣어준다면 스프링 빈으로 등록할 수도 있다!라는 의미
(@Configuratio은 안에 Component가 있어야 한다. 알아봐야하기 때문에
@Component는 spring이 알아볼 수 있다!)
스프링아 이어노테이션이 달려있는 클래스는 구현 용도가 아니라, 설정 용도야!
즉 xml, 대신 쓴거야!
그래서~ 설정 용도 중 스프링 등록도 있어!
객체를 반환하는 메소드 위에 @Bean을 달면, 반환되는 객체를 스프링 빈으로 등록
