spring - 在 XML Bean 定义中引用带注释的 Spring 组件

标签 spring spring-3 spring-annotations

我正在使用一个外部库,该库要求我使用 XML Bean 定义对其进行配置;在 Bean 定义中,我需要从我的项目中提供一个带有 Bean 的外部类。我正在使用带有组件扫描的 Spring 注释。

如何在 XML Bean 定义中引用我的注释 Bean?

除了创建 XML Bean 定义之外还有其他方法吗?

详情: Spring 3.0.7

最佳答案

无论它是如何创建的(基于 XML 或注释元数据),每个 bean 最终都会以唯一的名称进入应用程序上下文。

如果您刚刚使用 @Component 或派生类注释您的类,而没有说明任何名称,则将应用默认命名方案,并且 bean 名称将是您的类名称,第一个字符小写: ClassName => "className".

考虑到这一点,如果您需要在 XML bean 定义中注入(inject)该 bean,您可以像使用上下文中的任何其他 bean 一样进行操作:

<bean id="someBean" class="SomeClass">
    <property name="someProp" ref="className"/><!-- to stick to the above example -->
</bean>

由于您将注释与 XML 混合,应用程序上下文将能够正确定位“className”bean。

关于spring - 在 XML Bean 定义中引用带注释的 Spring 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17497107/

相关文章:

Spring 3.2.*,解析具有多个 <context :property-placeholder> 的占位符时出错

java - 跨 Java 包 Autowiring Spring Beans

java - Spring 3.2 默认为 @Autowired

spring - 升级到 Spring Boot 1.3 导致 java.lang.NoSuchMethodError : org. springframework.beans.factory.config.ConfigurableBeanFactory.getSingletonMutex()

Spring 多模块 i18n,带有扩展 messageSource 内容的模块

hibernate - 使用 Spring 3.1 和 Hibernate 4 时替换 IdTransferringMergeEventListener

java - 解析 JUnit 测试中的 Spring @Value 表达式

java - Spring Security 为所有角色名称添加了前缀 "ROLE_"?

spring - 找不到类[org.springframework.orm.hibernate5.LocalSessionFactoryBean]

spring-boot - Spring Boot + Kotlin注释错误