본문 바로가기
spring & boot/Spring & Spring Boot

[Spring] Spring-Container(IoC 컨테이너)에 관리되는 Bean 목록 확인

by lucas_owner 2023. 2. 8.

Spring Container가 관리하는 Bean 목록 확인 하기.

 

- Spring의 Bean은 Spring-Container(IoC Container)가 관리하고 있으며, 객체 생성, 객체 주입 같은 것들을 개발자가 아닌

Container에서 수행하게 된다. 

 

- Spring IoC, DI, Container 에 관한 개념을 좀 더 알고싶다면 아래 링크에서 공부하고 와도 좋을것 같다.

https://lucas-owner.tistory.com/39 

 

[Spring] Spring-Container, IoC, DI, Singleton 개념 정리

목차 IoC 란? Spring Container (스프링 컨테이너) DI(Dependency Injection) 란? Singleton 패턴이란? IoC 란? IoC 란 Inversion Of Control의 약자이며, 제어의 역전 이라고 한다. 프로그래머와 프레임워크의 주체가 바뀌

lucas-owner.tistory.com

 

- 해당 포스트에서는 Spring Container 에서 관리 되는 Bean 목록을 확인 하는것이 목표이다. 

  • BeanFactory의 기능도 포함하고 있는 ApplicationContext 를 사용해서 확인한다.
  • ApplicationContext 는 Container 의 구현체중 하나이다. 

 

Code 및 결과

package com.example.makeproject;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;

/************
 * @info : Spring - Container관리 Beans 목록 확인
 * @name : ContainerNameTest
 * @version : 1.0.0
 * @Description : Spring Container 구현체 2가지 : BeanFactory, ApplicationContext
 *
 * - ApplicationContext는 BeanFactory를 구현하여 BeanFactory의 확장 버전.
 * - Spring 공식문서 상 : 특별한일이 아니면 ApplicationContext 사용할 것을 권장.
 *
 * - 목표: ApplicationContext 내부의 beans 확인.
 ************/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MakeProjectApplication.class)
public class ContainerNameTest {


    @Autowired
    ApplicationContext context;

    @Test
    public void contextCheck() throws Exception {

        if(context != null) {
            String[] beans = context.getBeanDefinitionNames();

            for (String bean: beans) {
                System.out.println("bean: " + bean);
            }
        }

    }


}

 

- Code 사진

 

- 단순히 Container가 관리하는 Bean 목록을 가져와서 출력하는것이다. 

- ApplicationContext 의 getBeanDefinitionNames(); 를 호출하게 된다면 Bean 목록을 확인할 수 있다.

반응형

댓글