Existe-t-il un moyen d'imprimer tous les beans Spring chargés au démarrage ? J'utilise Spring 2.0.
Réponses
Trop de publicités?Oui, contactez ApplicationContext
et appelez .getBeanDefinitionNames()
Vous pouvez obtenir le contexte en :
- mise en œuvre de
ApplicationContextAware
- l'injecter avec
@Inject
/@Autowired
(après 2,5) - utiliser
WebApplicationContextUtils.getRequiredWebApplicationContext(..)
Connexe : Vous pouvez également détecter l'enregistrement de chaque bean en enregistrant un bean BeanPostprocessor
. Il sera notifié pour chaque haricot.
Akceptor
Points
854
vanfgh
Points
221
Imprimer tous les noms de bean et ses classes :
package com.javahash.spring.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
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";
}
}
vietnem
Points
169