1 package de.juplo.demos.multiplebeans;
3 import org.springframework.beans.BeansException;
4 import org.springframework.beans.factory.config.BeanDefinition;
5 import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
6 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
7 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
8 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
9 import org.springframework.stereotype.Component;
12 public class MultipleBeansBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
14 public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException {
16 MultipleBeansProperties properties = factory.getBean(MultipleBeansProperties.class);
17 BeanDefinitionRegistry registry = (BeanDefinitionRegistry)factory;
19 for (MultipleBeansProperties.Site site : properties.site) {
20 BeanDefinition beanDefinition =
22 .genericBeanDefinition(SiteController.class)
23 .addConstructorArgValue(site.name)
24 .addConstructorArgValue(site.description)
27 registry.registerBeanDefinition("name", beanDefinition);