Spring 용기 의 모든 Bean 이름 가 져 오기 및 인쇄

원본 링크:http://www.cnblogs.com/jun1019/p/10807575.html
생각:
1. Spring 의 applicationContextAware 인 터 페 이 스 를 실현 하고 setapplicationContext 방법 을 다시 쓰 며 얻 은 applicationContext 대상 을 정적 변수 에 저장 합 니 다. 이 컨 텍스트 대상 이 있 으 면 프로젝트 의 임 의적 인 곳 에서 임의의 Bean 을 얻 을 수 있 습 니 다.
2. applicationContext. getBeanDefinitionNames () 방법 을 호출 하면 Spring 용기 의 모든 Bean 이름 을 얻 을 수 있 습 니 다.테스트 편 의 를 위해 InitialingBean 인터페이스의 after PropertiesSet 방법 에서 모든 Bean 이름 을 인쇄 합 니 다.Spring 용 기 를 시작 하고 콘 솔 을 관찰 하면 인쇄 결 과 를 볼 수 있 습 니 다. Spring 용기 에 있 는 모든 bean 은 프로젝트 디 버 깅 에 유용 합 니 다.
 1 import org.springframework.beans.BeansException;
 2 import org.springframework.beans.factory.InitializingBean;
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.ApplicationContextAware;
 5 import org.springframework.stereotype.Component;
 6 
 7 /**
 8  *   Spring     Bean  
 9  *
10  * @author syj
11  */
12 @Component
13 public class ApplicationContextBean implements ApplicationContextAware, InitializingBean {
14 
15     public static ApplicationContext applicationContext;
16 
17     /**
18      *    ApplicationContext
19      *
20      * @param applicationContext
21      * @throws BeansException
22      */
23     @Override
24     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
25         ApplicationContextBean.applicationContext = applicationContext;
26     }
27 
28     /**
29      *   IOC      Bean  
30      *
31      * @throws Exception
32      */
33     @Override
34     public void afterPropertiesSet() throws Exception {
35         String[] names = applicationContext.getBeanDefinitionNames();
36         for (String name : names) {
37             System.out.println(">>>>>>" + name);
38         }
39         System.out.println("------
Bean :" + applicationContext.getBeanDefinitionCount()); 40 } 41 }

 
더 쉬 운 방법 이 있 습 니 다. @ Autowired 를 직접 사용 하여 applicationContext 대상 을 주입 합 니 다.
 1 import org.springframework.beans.factory.annotation.Autowired;
 2 import org.springframework.context.ApplicationContext;
 3 import org.springframework.web.bind.annotation.GetMapping;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 import org.springframework.web.bind.annotation.RestController;
 6 
 7 import java.util.Arrays;
 8 import java.util.List;
 9 
10 @RestController
11 @RequestMapping
12 public class BeanController {
13 
14     @Autowired
15     private ApplicationContext applicationContext;
16 
17     @GetMapping("/beanList")
18     public List beanList() {
19         return Arrays.asList(applicationContext.getBeanDefinitionNames());
20     }
21 }

 
다음으로 전송:https://www.cnblogs.com/jun1019/p/10807575.html

좋은 웹페이지 즐겨찾기