Spring, Bean, constructor-arg as String

Spring, Bean, constructor-arg as String

我遇到异常: 没有找到依赖项的合格 bean [java.lang.String]:预计至少有 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


    @Component
    public class DAO {
        private final String host;
        private final String port;
        public DAO(String host, String port) {
            this.host = host;
            this.port = port;
        }
        @PostConstruct
        public void init() {
            // custom initialization logic
        }
    }

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

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

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