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

目录

  • 引言
  • 一、装配的类上没有加注解
  • 二、启动类的路径不对
  • 三、未扫描到这个Bean
  • 四、测试时未装配到
  • 五、注意装配的类是否正确

引言

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

无法自动装配xxxx类型的Bean问题记录及总结_第1张图片

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

装配的类上应有 @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();
        }
    }
}

二、启动类的路径不对

启动类应与所在装配类的实体包的目录在同父级目录下如:
无法自动装配xxxx类型的Bean问题记录及总结_第2张图片
装配CustomeerDao类的所在的实体类包entity父级目录edu与启动类同属于example的包下:
无法自动装配xxxx类型的Bean问题记录及总结_第3张图片

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

三、未扫描到这个Bean

配置一个config类,设置扫描路径就行:
路径:
无法自动装配xxxx类型的Bean问题记录及总结_第4张图片
配置类代码:

@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就是两个类同名,虽然配置好了,但是引入错了…所以一定要看好是否引入的类是否正确,再去寻找配置问题。

你可能感兴趣的:(bug记录总结,单元测试,java,spring)