限制bean创建计数

时间:2015-04-09 19:33:58

标签: spring

有没有办法限制使用Spring在应用程序中创建的bean数量?

我试过看过ApplicationContextAware和BeansFactoryUtil。 BeansFactoryUtils有一个名为countBeansIncludingAncestors()的方法但是我不知道bean是否是特定类型的等等。

任何帮助都会很明显。

1 个答案:

答案 0 :(得分:0)

我想你想限制bean定义的数量。您可以使用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 + "]");

    }
}