【Spring】 No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qua

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.问题解决

加一个默认的构造方法就可以了。

参考文章

https://blog.csdn.net/afsf12134/article/details/89813904?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task