gpt4 book ai didi

java - 在 Spring 4 中导入 Groovy Bean 定义?

转载 作者:搜寻专家 更新时间:2023-11-01 03:05:54 26 4
gpt4 key购买 nike

我已经使用 groovy dsl 定义了一些 bean,并尝试添加它们,就像我之前在我的 dispatcher-servlet.xml 中使用 beans 的 xml 定义一样:

<import resource="/WEB-INF/config.groovy"/>

但这行不通。怎么了?

我的 bean 定义如下所示:

import org.apache.commons.dbcp.BasicDataSource

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

最佳答案

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

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 中定义:

<bean class="my.package.GroovyConfigImporter">
<constructor-arg value="myConfig.groovy"/>
</bean>

关于java - 在 Spring 4 中导入 Groovy Bean 定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com