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。
我遇到异常: 没有找到依赖项的合格 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。