Список зарегистрированных бинов в Spring приложении

Вопрос:

Как получить список зарегистрированных бинов в 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
  • 24 июля 2010, 22:15
  • cyril

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Не забываем смотреть статистику:

Яндекс цитирования