1.出現問題
在使用spring框架中service依賴dao 重載了默認的構造方法。重載之后 默認的構造方法就會被覆蓋。
public class PersionDao {
private String personName = "person222";
public PersionDao(String personName) {
this.personName = personName;
}
}
然后運行就出現了以下錯誤。
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2.問題分析
可以看到提示顯示的是沒有找到NoSuchBeanDefinition 原因是springioc容器加載bean默認使用無參構造進行初始化。
而Spring實例化bean有四種方式
1.無參構造方法實例化(Spring默認,常用,需要bean類中存在無參構造方法);
2.靜態工廠實例化
3.實例化工廠實例化
4.注解方式實例化
3.問題解決
加一個默認的構造方法就可以了。
參考文章
