이번 단계에서는 단순히 하나하나의 Bean을 만드는 것을 넘어서, Bean들의 이름표를 바꿔 달고(커스텀 이름), Bean들을 서로 조립(관계 형성)하는 방법을 배울겁니다.
마치 레고 블록(Bean)을 각각 만들고, 그 블록들을 합쳐서 완성된 장난감(Person)을 만드는 과정과 같습니다.
원래 Bean의 이름은 메서드 이름과 똑같습니다. 하지만 @Bean(name = "...")을 쓰면 내가 원하는 이름표를 붙일 수 있습니다.
address였던 메서드에 name="address2"라는 이름표를 붙였습니다.App02 실행 파일에서 getBean("address2")로 이름을 바꿔서 불러야 합니다.Person이라는 큰 객체를 만들 때, 이미 만들어둔 name, age, address Bean을 가져와서 합치는 방법입니다. 두 가지 방법이 있습니다.
person2MethodCall)name(), age())를 직접 실행해서 값을 가져오는 방식입니다.@Bean
public Person person2MethodCall() {
// 이미 있는 name(), age() 메서드를 호출해서 재사용!
return new Person(name(), age(), address());
}
person3MethodCall)@Bean
// 괄호 안에 필요한 걸 적으면 스프링이 자동으로 채워줍니다 (name, age, address3)
public Person person3MethodCall(String name, int age, Address address3) {
return new Person(name, age, address3);
}
코드 마지막 부분에 주석 처리된 System.out.println(context.getBean(Address.class)); 부분이 보이시나요?
Configuration)에는 주소 타입이 address2, address3 이렇게 두 개나 등록되어 있습니다.@Bean(name="새이름")으로 Bean 이름을 내 맘대로 바꿀 수 있다.