Spring、Bean、构造函数参数作为字符串

我收到一个异常:没有找到依赖项 [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



    @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

        }

    }


郎朗坤
浏览 105回答 1
1回答

杨魅力

您已定义该 bean 两次;在 XML 配置中并作为一个@Componentbean。通过使用@Component注释,可以在组件扫描期间拾取 bean。但由于组件扫描时所需的字符串参数不明确,因此抛出异常。从您的 bean 中删除@Component注释,让您的 XML 配置 bean 成为唯一的DAObean。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java