有没有办法限制使用Spring在应用程序中创建的bean数量?
我试过看过ApplicationContextAware和BeansFactoryUtil。 BeansFactoryUtils有一个名为countBeansIncludingAncestors()的方法但是我不知道bean是否是特定类型的等等。
任何帮助都会很明显。
答案 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 + "]");
}
}