2015-04-09 4 views
0

Есть ли способ ограничить количество компонентов, созданных в приложении, используя Spring ?.Ограничение создания бобов

Я пробовал видеть ApplicationContextAware и BeansFactoryUtil. BeansFactoryUtils имеет метод, называемый countBeansIncludingAncestors(), но это не дает мне знать, является ли компонент определенного типа и т. Д.

Любая помощь будет заметна.

+0

Вы хотите ограничить количество бин или бобов уже созданное выполняющейся контекстом? –

+0

, что я хочу, - это ограничить контейнер от создания бонусной дефинизации больше, чем данный счет – chetank

ответ

0

Я предполагаю, что вы хотите ограничить количество определений компонентов. Вы можете использовать BeanFactoryPostProcessor, чтобы проверить его

public class MaximumBeanDefinitionsPostProcessor implements BeanFactoryPostProcessor { 

    private int maximum = 100; 

    @Override 
    public void postProcessBeanFactory(
      ConfigurableListableBeanFactory beanFactory) throws BeansException { 

     if (BeanFactoryUtils.countBeansIncludingAncestors(beanFactory) > this.maximum) 
      throw new BeanDefinitionStoreException("Maximun number of bean defintions execeeded [" + maximum + "]"); 

    } 
}