Spring에서는 애플리케이션을 구성하는 몇몇 클래스들을 싱글톤으로 관리할 수 있도록 ‘빈’을 등록한다. 해당 객체는 애플리케이션 실행 과정에서 주요한 정보를 설정하거나, 로직을 수행하는 역할을 수행한다.
빈은 자바 애플리케이션을 실행하여 Spring이 initializing 된 후에 스캔을 통해 컨텍스트에 등록되는데, 이렇게 등록된 빈의 목록을 출력하려면 아래와 같은 코드를 작성하여 클래스 경로 내에 넣어주면 된다.
클래스 명은 아무거나 적어도 된다.
CommandLineRunner(org.springframework.boot.CommandLineRunner
)를 상속받은 클래스를 Component(Bean)으로 지정해주면 Spring이 올라간 후에 run 메소드를 자동으로 invoke 해준다. run 메소드를 원하는대로 재정의해주면 해당 코드가 초기단계에서 한번 실행되도록 할 수 있다.
run 메소드 안에는, 빈 정보를 가지고 있는 ApplicationContext(org.springframework.context.ApplicationContext
)에서 getBeanDefinitionNames()
를 호출하여 출력하는 for문을 넣어주었다. 그리고 원하는 빈을 찾기 수월하도록, 출력 전 정렬을 해줬다.
이렇게 하면 빈 목록이 잘 출력되는 것을 볼 수 있다.