怎样查看 spring IoC 容器有哪些 bean
方法1:(可行)只能查看部分 getBeanDefinitionNames 中的Bean。
package com.itheima.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Arrays; import java.util.List; @RestController @RequestMapping public class ViewAllBeans { @Autowired private ApplicationContext applicationContext; @GetMapping("/beanList") public List<String> beanList() { return Arrays.asList(applicationContext.getBeanDefinitionNames()); } }
方法2:
public static void main(String args[]) { ApplicationContext context=new ClassPathXmlApplicationContext("classpath:spring-applicationContext.xml"); Object user= context.getBean("userController"); String[] str=context.getBeanDefinitionNames(); for (String string : str) { System.out.println("..."+string); } System.out.println("----"+user); } // REF https://blog.csdn.net/chengjunhua19890809/article/details/77981839
方法3:
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
public class SpringContextHolder implements ApplicationContextAware { private static ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextHolder.applicationContext = applicationContext; } public static ApplicationContext getApplicationContext() { return applicationContext; } public static void printAllBeans() { String[] beans = SpringContextHolder.getApplicationContext() .getBeanDefinitionNames(); for (String beanName : beans) { Class<?> beanType = SpringContextHolder.getApplicationContext() .getType(beanName); System.out.println("BeanName:" + beanName); System.out.println("Bean的类型:" + beanType); System.out.println("Bean所在的包:" + beanType.getPackage()); System.out.println("Bean:" + SpringContextHolder.getApplicationContext().getBean( beanName)); } } }
方法4:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Arrays; import java.util.List; @RestController @RequestMapping public class BeanController { @Autowired private ApplicationContext applicationContext; @GetMapping("/beanList") public List<String> beanList() { return Arrays.asList(applicationContext.getBeanDefinitionNames()); } }
REF
https://blog.csdn.net/Gabriel576282253/article/details/104826413
https://blog.csdn.net/loongshawn/article/details/106259754
https://blog.csdn.net/const_/article/details/100039428
https://blog.csdn.net/long243416336/article/details/80590032