Spring 용기 의 모든 Bean 이름 가 져 오기 및 인쇄
생각:
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.