Вопрос:
Как получить список зарегистрированных бинов в Spring приложении?
Ответ:
1. Создаем класс который реализует интерфейс org.springframework.context.ApplicationContextAware
package com.test;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* @Author Cyril
* @Date Jul 24, 2010
*
*/
public class MyClass implements ApplicationContextAware {
private ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
public ApplicationContext getApplicationContext() {
return applicationContext;
}
}
2. Регистрируем его как бин
<bean id="myClass" class="com.test.MyClass" />
3. Автовайрим этот бин в класс в котором необходим список бинов и получам список:
@Controller
public class MyController {
@Autowired
private MyClass myClass;
@RequestMapping(value = "/test.htm", method = RequestMethod.GET)
public ModelAndView testHandler(HttpServletRequest request, HttpServletResponse response)
throws Exception {
ModelAndView modelAndView = new ModelAndView("test");
modelAndView.addObject("beanNames", myClass.getApplicationContext().getBeanDefinitionNames());
}
public void setMyClass(MyClass myClass) {
this.myClass = myClass;
}
}
Все :)
Комментарии (0)
RSS свернуть / развернутьТолько зарегистрированные и авторизованные пользователи могут оставлять комментарии.