我对 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/