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

时间:2011-05-13 16:47:13

标签: spring grails

Grails中的Spring别名有问题。我有一个库.jar文件包含类和Spring配置不能按预期工作。当我从标准(无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。

2 个答案:

答案 0 :(得分:4)

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

springConfig.addAlias "aliasName", "beanName"

我希望importBeans也能导入别名

答案 1 :(得分:1)

此链接可能对您有所帮助: http://burtbeckwith.com/blog/?p=85

在那里提到别名至少在resources.xml中声明时不起作用。该帖还提到了一种以编程方式声明别名的方法。但似乎这篇文章写了一段时间,并不确定它与grails 1.3.7的相关性。