요즘에는 스프링 부트를 도입하면서 거의 볼 수 없는데, 레거시 코드들은 xml 로 된 경우가 있으니 아래 코드를 참고해서 어느정도 이해할 수 있는 수준을 만들어 놓자.
관련하여 테스트를 해보면 다음과 같다.
GenericXmlApplicationContext
를 사용한다는 점을 확인하자.
테스트 결과는 아래와 같이 나오게 된다. bean 이 성공적으로 만들어 짐을 알 수 있었다.
스프링 컨테이너는 메타정보를 기반으로 스프링 빈을 생성한다.
@Bean 하나당 하나씩 메타 정보가 생성된다.
테스트를 해보자. Role 이
ROLE_APPLICAION
에 해당하는 경우의 메타 정보만 확인해보는 코드이다.
테스트 결과는 다음과 같다.
xml로 config를 읽는 방식에서의 출력은 class 가 노출이 되어있는 직접 선언 방식 이고,
java 파일로 config 를 읽는 방식(현재 테스트한 방식)에서의 출력은 class 가 null 이 되고, factoryBeanName, factoryMethodName 에 클래스 명들이 노출되어 있다.