이번 포스팅에서는 @Configuration을 사용해서 스프링 컨테이너에 설정 파일을 등록하고 @Bean을 등록하고 사용하는 법을 기록하겠습니다.
Spring Container가 관리하는 컴포넌트
@Bean(name="address")와 같이 사용자 지정 이름을 설정할 수 있습니다.x.getBean("BeanName") : Bean 이름을 통한 검색x.getBean(Xxxx.class) : 클래스 이름 통한 검색person3Parameters()를 보시면 기존의 name(), age(), address() 를 사용하여 만들어 졌습니다.//record를 사용하면 자동으로 Getter, Setter, Constructor를 생성해 준다.
record Person(String name, int age, Address address){}
record Address(String firstLine, String city){}
@Configuration
public class HelloWorldConfiguration {
@Bean
public String name() {
return "Ranga";
}
@Bean
public int age() {
return 15;
}
@Bean
public Person person() {
return new Person("Ravi", 20, new Address("Main Street", "Utrecht"));
}
@Bean
public Person person2MethodCall() {
return new Person(name(), age(), address()); //Spring Bean으로 등록된 name, age, address 사용
}
@Bean
public Person person3Parameters(String name, int age, Address address3) {
return new Person(name, age, address3);
}
@Bean(name = "address2")
public Address address() {
return new Address("Baker Street", "London");
}
@Bean(name = "address3")
public Address address3() {
return new Address("Motinagar", "Hyderabad");
}
}