[英]Spring autowired annotation constructor parameter
這是我的代碼
類:
@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類型更改為用戶定義的類,它的效果很好。 我錯了,或者春天不可能這樣做?
我認為將基元注入組件並沒有多大意義。
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;
}
}
但是,仍然有更簡單的方法來做到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.