-package de.juplo.demos.multiplebeans;
-
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.stereotype.Component;
-
-public class MultipleBeansBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
-
- public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException {
-
- MultipleBeansProperties properties = factory.getBean(MultipleBeansProperties.class);
- BeanDefinitionRegistry registry = (BeanDefinitionRegistry)factory;
-
- for (MultipleBeansProperties.Site site : properties.sites) {
- BeanDefinition beanDefinition =
- BeanDefinitionBuilder
- .genericBeanDefinition(SiteController.class)
- .addConstructorArgValue(site.name)
- .addConstructorArgValue(site.description)
- .getBeanDefinition();
-
- registry.registerBeanDefinition("name", beanDefinition);
- }
- }
-}