无法自动装配xxxx类型的Bean问题记录及总结

本文总结了Spring Boot应用启动时可能遇到的问题,包括装配类缺少注解、启动类路径错误、Bean扫描不到、测试时装配问题以及引入类错误等常见错误,并提供了相应的解决方法和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

之前有碰到这个问题大概四五次但是没记录下来…今天写demo的时候又遇到这类问题花了两个小时。看了看网上博客很多都是掩耳盗铃取消设置的做法…故此记录总结下来分享

在这里插入图片描述

一、装配的类上没有加注解

装配的类上应有 @Component@Service@Repository …等注解
如:

@Repository
public class CustomerDAO {

    @Value("${data.class}")
    private  String tempClass;

    public String getTempClass() {
        return tempClass;
    }

    public void addCustomers(){
        System.out.println(tempClass);
        // 转化的数据类型为Excel
        try {
            System.out.println(tempClass);
            Class<?> classType=Class.forName(tempClass);
            try {
                DataConvertor dataConvertor = (DataConvertor) classType.newInstance();
                dataConvertor.readFile();
            } catch (InstantiationException | IllegalAccessException e) {
                log.debug("方法或构造器没有权限");
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            log.debug("相应的类未找到");
            e.printStackTrace();
        }
    }
}

二、启动类的路径不对

启动类应与所在装配类的实体包的目录在同父级目录下如:
在这里插入图片描述
装配CustomeerDao类的所在的实体类包entity父级目录edu与启动类同属于example的包下:
在这里插入图片描述

如果实在不确定目录是否正确可以多试试几次,看是否是这个问题。

三、未扫描到这个Bean

配置一个config类,设置扫描路径就行:
路径:
在这里插入图片描述
配置类代码:

@Configuration
@ComponentScan(basePackages = {"com.example.edu"})
public class knowledgereviewConfig {

}

四、测试时未装配到

如果你是用Springboot,junit单元测试,测试类上应
有@RunWith(SpringRunner.class)、@SpringBootTest
注解
如:

@RunWith(SpringRunner.class)
@SpringBootTest
class KnowledgeReviewApplicationTests {

    @Autowired
    CustomerDAO customerDAO;

    @Test
    public void LSPTest(){
        EmailSender emailSender = new EmailSender();
        VIPCustommer vipCustommer = new VIPCustommer();
        emailSender.send(vipCustommer);
    }

    @Test
    public void DIPTest(){
        customerDAO.addCustomers();
    }

}

五、注意装配的类是否正确

这次写demo就是两个类同名,虽然配置好了,但是引入错了…所以一定要看好是否引入的类是否正确,再去寻找配置问题。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸平xp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值