首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring 4中导入Groovy Bean定义?

问在Spring 4中导入Groovy Bean定义?
EN

Stack Overflow用户
提问于 2014-03-25 17:59:51
回答 1查看 665关注 0票数 4
代码语言:javascript
复制
<import resource="/WEB-INF/config.groovy"/>

但这是行不通的。怎么了?

我的bean定义如下所示:

代码语言:javascript
复制
import org.apache.commons.dbcp.BasicDataSource

beans {
   dataSource(BasicDataSource) {
      driverClassName = "com.mysql.jdbc.Driver"
      url = "jdbc:mysql://localhost:3306/test"
      username = "root"
      password = "root"
   }
}
EN

回答 1

Stack Overflow用户

发布于 2014-12-02 19:40:35

通过定义自己的BeanPostprocessor解决了这个问题:

代码语言:javascript
复制
public class GroovyConfigImporter implements BeanDefinitionRegistryPostProcessor {
    private static final Logger log = LoggerFactory.getLogger(GroovyConfigImporter.class);

    private final String config;

    public GroovyConfigImporter(String config) {
        this.config = config;
    }

    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
        log.info("Loading Groovy config '{}'", config);

        GroovyBeanDefinitionReader reader = new GroovyBeanDefinitionReader(registry);
        try {
            reader.importBeans(config);
        } catch (IOException e) {
            throw new ApplicationContextException("Can't open Groovy config '" + config + "'");
        }
    }

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
    }
}

然后在XML中定义:

代码语言:javascript
复制
<bean class="my.package.GroovyConfigImporter">
    <constructor-arg value="myConfig.groovy"/>
</bean>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22631024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档