Spring,Bean,constructor-arg as String

Posted

技术标签:

【中文标题】Spring,Bean,constructor-arg as String【英文标题】:Spring, Bean, constructor-arg as String 【发布时间】:2020-02-27 20:51:21 【问题描述】:

我遇到了一个异常: 没有为依赖项 [java.lang.String] 找到符合条件的 bean:预计至少有 1 个符合自动装配候选条件的 bean。

在 beans.xml 中

<bean id = "database" class = "com.price.compare.service.DAO" scope="singleton">
    <constructor-arg index="0" type = "java.lang.String" value="localhost"/>
    <constructor-arg index="1" type = "java.lang.String" value="5432"/>
</bean>

DAO.java

@零件 公共类 DAO 私有最终字符串主机; 私有最终字符串端口; 公共 DAO(字符串主机,字符串端口) this.host = 主机; this.port = 端口; @PostConstruct 公共无效初始化() // 自定义初始化逻辑

【问题讨论】:

【参考方案1】:

你已经定义了 bean 两次;在 XML 配置中作为@Component bean。

通过使用@Component 注释,bean 在组件扫描期间被拾取。但是,由于在组件扫描过程中所需的字符串参数不明确,所以会抛出异常。

从您的 bean 中删除 @Component 注释,让您的 XML 配置 bean 成为唯一的 DAO bean。

【讨论】:

以上是关于Spring,Bean,constructor-arg as String的主要内容,如果未能解决你的问题,请参考以下文章

spring怎么获取全部的bean

spring的bean工厂后置处理器

Spring课程 Spring入门篇 3-2 Spring bean装配(上)之bean的生命周期

Spring之Bean

使用注解,spring中无法注入bean?

spring工具类中注入使用bean