@SpringBootApplication
public class SpringBootTutorialBasicsApplication {

	public static void main(String[] args) {
		ApplicationContext applicationContext = SpringApplication.run(SpringBootTutorialBasicsApplication.class, args);

		for (String name : applicationContext.getBeanDefinitionNames()) {
			System.out.println(name);
		}
	}
}

        

public class PrintBeans {
    @Autowired
    ApplicationContext applicationContext;

    public void printBeans() {
        System.out.println(Arrays.asList(applicationContext.getBeanDefinitionNames()));
    }
}

        

public class HelloWorldController {

    @Autowired
    private ApplicationContext applicationContext;

    @RequestMapping("/hello")
    public String hello(@RequestParam(value="key", required=false, defaultValue="World") String name, Model model) {

        String[] beanNames = applicationContext.getBeanDefinitionNames();

        for (String beanName : beanNames) {

            System.out.println(beanName + " : " + applicationContext.getBean(beanName).getClass().toString());
        }

        model.addAttribute("name", name);

        return "helloworld";
    }
}

        

@SpringBootApplication
public class Application implements CommandLineRunner {

    @Autowired
    private ApplicationContext appContext;

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

    @Override
    public void run(String... args) throws Exception {

        String[] beans = appContext.getBeanDefinitionNames();
        Arrays.sort(beans);
        for (String bean : beans) {
            System.out.println(bean);
        }

    }

}

        

@SpringBootApplication
public class Application 
{
    public static void main(String[] args) 
    {
        SpringApplication.run(Application.class, args);
    }
 
    @Bean
    public CommandLineRunner run(ApplicationContext appContext) {
        return args -> {
 
            String[] beans = appContext.getBeanDefinitionNames();
            Arrays.stream(beans).sorted().forEach(System.out::println);
        };
    }
}

        

public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

    //Map<String, Object> serviceMap = applicationContext.getBeansWithAnnotation(XxlWebHandlerMapping.class);

    String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
    if (beanDefinitionNames!=null && beanDefinitionNames.length>0) {
        for (String beanDefinitionName : beanDefinitionNames) {

            boolean isApiHandler = applicationContext.isTypeMatch(beanDefinitionName, XxlWebHandler.class);
            if (isApiHandler) { // if (beanDefinition instanceof XxlWebHandler) {
                Object beanDefinition = applicationContext.getBean(beanDefinitionName);
                // valid annotation
                XxlWebHandlerMapping annotation = beanDefinition.getClass().getAnnotation(XxlWebHandlerMapping.class);
                if (annotation!=null && annotation.value()!=null && annotation.value().trim().length()>0 ) {
                    handlerRepository.put(annotation.value(), (XxlWebHandler) beanDefinition);
                    logger.warn(">>>>>>>>>>> xxl-hex, bind hex handler success : {}", annotation.value());
                }
            }

        }
    }

}

        

private void findAndRegisterAnnotatedDelegates(
        ApplicationContext applicationContext) {
    String[] beanNames = applicationContext.getBeanDefinitionNames();
    for (String beanName : beanNames) {
        Object bean = applicationContext.getBean(beanName);
        if (bean != null) {
            Class<?> type = bean.getClass();
            Method[] methods = type.getMethods();
            for (Method method : methods) {
                findAndRegisterAnnotatedDelegateMethods(bean, method);
            }
        }
    }
}

        

public static void main(String[] args) {
    ApplicationContext ctx = SpringApplication.run(BusPassApp.class, args);
    String[] beanNames = ctx.getBeanDefinitionNames();
    Arrays.sort(beanNames);
    StringBuilder sb = new StringBuilder("Application beans:\n");
    for (String beanName : beanNames) {
        sb.append(beanName + "\n");
    }
    log.info(sb.toString());
}

        

public void springContextIsValid() {
	ApplicationContext context = new ClassPathXmlApplicationContext("spring/st-data-context.xml");

	for (String s : context.getBeanDefinitionNames()) {
		try {
			context.getBean(s);
		} catch (BeanIsAbstractException e) {
		}
	}
} 

        

private void initializeBindings(Binding bindings) {
	bindings.setVariable("context", applicationContext);
	for (String name : applicationContext.getBeanDefinitionNames()) {
		try {
			bindings.setVariable(name, applicationContext.getBean(name));
		} catch (BeanIsAbstractException e) {
		} catch (Throwable t) {
			LOGGER.warn("Can't get bean " + name + ", error: " + t, t);
		}
	}

	bindings.setProperty("out", io.getOutputResultMessageStream());
	bindings.setProperty("err", io.getOutputErrorMessageStream());
}        
main