获取 Bean 的依赖 Bean 和 被依赖 Bean

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(Application.class, args);
        ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
        String[] beanDefinitionNames = beanFactory.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanDefinitionName);
            Object source = beanDefinition.getSource();
            try {
                FileSystemResource sourceFile = (FileSystemResource) source;
                if (Objects.isNull(sourceFile)) {
                    continue;
                }
                String absolutePath = sourceFile.getFile().getAbsolutePath();
                if (!absolutePath.startsWith("C:\\home\\projects\\OICServer-pro\\mes-service\\target\\classes\\cn\\cowintech\\mes\\service")) {
                    continue;
                }
                String[] dependentBeans = beanFactory.getDependentBeans(beanDefinitionName);
                String[] dependenciesForBean = beanFactory.getDependenciesForBean(beanDefinitionName);
                System.out.println("Service Bean:" + beanDefinitionName);
                System.out.println();
                System.out.println("Dependent Beans:");
                for (String dependentBean : dependentBeans) {
                    System.out.println(dependentBean);
                }
                System.out.println();
                System.out.println("Dependencies For Bean:");
                for (String s : dependenciesForBean) {
                    System.out.println(s);
                }
                System.out.println("----------------------------------------------");
            } catch (Exception e) {
                System.out.println("---------------Exception----------------------");
            }
        }
    }
}

 

posted @ 2023-06-07 11:18  小路亚  阅读(101)  评论(0)    收藏  举报