사용자 도구

사이트 도구


springframework:bean

문서의 이전 판입니다!


SpringFramework Bean

Dynamic Bean Definition - 동적 Bean 생성

  • BeanDefinitionRegistryPostProcessor를 구현한다.
    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
            throws BeansException {
     
        RootBeanDefinition beanDefinition = 
                    new RootBeanDefinition(MyServiceImpl.class); //The service implementation
        serviceDefinition.setTargetType(MyService.class); //The service interface
        serviceDefinition.setRole(BeanDefinition.ROLE_APPLICATION);
        registry.registerBeanDefinition("myBeanName", beanDefinition );
    }
    // 혹은 다음과 같은 스타일
    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        for (String customerKey : customerKeys) { 
            String dataSourceName = "dataSource_" + customerKey;
            BeanDefinitionBuilder definitionBuilder = 
                    BeanDefinitionBuilder.genericBeanDefinition(JndiObjectFactoryBean.class); 
            definitionBuilder.addPropertyValue("jndiName", "jdbc/" + dataSourceName); 
            registry.registerBeanDefinition(dataSourceName, definitionBuilder.getBeanDefinition()); 
        }
    }
  • 해당 구현체 자체를 @Configuration으로 지정하거나,
springframework/bean.1447737994.txt.gz · 마지막으로 수정됨: 2015/11/17 13:56 저자 kwon37xi