这是我的代码
班级:
@Component("testcomp")
public class TestClass {
private String msg;
@Autowired
public TestClass(String msg)
{
this.msg = msg;
}
}
appconfig.xml
<context:component-scan base-package="com.example.demo"/>
<bean id="msg" class="java.lang.String" c:_0="Test MSG"/>
当我运行项目时,出现此错误: “在com.example.demo.TestClass中构造函数的参数0需要找不到类型为'java.lang.String'的bean。”
此方法不适用于String类。但是,如果我将String类型更改为用户定义的类,则效果很好。 我错了吗?还是在春季不可能这样做?
答案 0 :(得分:3)
我认为将基元注入组件中并没有任何意义。
application.properties
文件中,并使用@Value("${path.to.your.property.key}")
注入它。我没有尝试,但是我认为您仍然可以像这样配置Bean:
@Configuration
public class Config {
@Bean(name = "msg")
public String msg() {
return "Test MSG";
}
}
@Component("testcomp")
public class TestClass {
private String msg;
@Autowired
public TestClass(@Qualifier("msg") String msg)
{
this.msg = msg;
}
}
但是,仍然有更简单的方法。