在 Grails 中运行时 Spring 别名不可用

标签 spring grails

我对 Grails 中的 Spring 别名有疑问。我有一个包含类和 Spring 配置的库 .jar 文件,但该文件未按预期工作。当我从标准(无 Grails)Java 应用程序导入它们时,它确实按预期工作。

当前配置包含此内容。

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
   <property name="contextPath" value="uk.co.company.package"/>
</bean>

<alias name="marshaller" alias="unmarshaller"/>

并因错误而失败。

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'unmarshaller' is defined

将配置更改为以下内容,然后使其按预期工作。

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
   <property name="contextPath" value="uk.co.company.package"/>
</bean>
<bean id="unmarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
   <property name="contextPath" value="uk.co.company.package"/>
</bean>

正在导入并读取配置。由于某种原因,当我尝试使用别名时,该别名不可用。这是什么原因?

这是 Grails 1.3.7 和 Spring 3.0.5 的情况。

最佳答案

我也看到这个问题了。您可以通过在 Grails resources.xml 中定义别名来解决这个问题,或者在我的例子中在我的插件 doWithSpring 闭包中定义别名:

springConfig.addAlias "aliasName", "beanName"

我希望 importBeans 也能导入别名

关于在 Grails 中运行时 Spring 别名不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995193/

相关文章:

java - 在 Spring/Hibernate 环境中手动管理数据库事务

java - Spring POST multipart/form-data 请求正文为空,getParts 始终为空

grails - 在Groovy/Grails中使用特定语言环境调用TimeCategory

eclipse - 从测试类运行单个集成测试

grails - 阻止女孩添加.JSP文件扩展名

rest - 如何让 Json Api 渲染与 Grails v3.3.3 中的 json View 一起使用

spring - 不满意的依赖异常 : Error creating bean with name 'homeController' : Unsatisfied dependency expressed through field 'userDAO'

spring security oauth2 java config - 处理程序调度失败;嵌套异常是 java.lang.StackOverflowError

java - 如何通过环境变量设置名称中带有下划线的 Spring Boot 属性?

java - 当 grails .war 文件运行在与构建时不同的 JDK 上时出现 ClassNotFound 异常