Spring中部分@Components注解的类无法被@ComponentScan扫描到的问题

Spring中部分@Components注解的类无法被@ComponentScan扫描到的问题

今天在做@Spring自动化装配的入门练习时,一个被@Components注解的test类一直无法@ComponentScan扫描到,但其他的被@Components注解的类可以被扫描到

package com.configBean;
@Component
class testBean1{
}
@Component("lonelyHeartsClub")//@Named("lonelyHeartsClub")两者之间有细微的差距,大多时候能够相互替换
class SgtPeppers implements CompactDisc{
    private String title="Sgt. Pepper`s Lonely Hearts Club Band";
    private String artist="The Beatles";
    public void play() {
        System.out.println("Playing "+title+" by "+artist);
    }
}
@Configuration
@ComponentScan(basePackages = {"com.configBean"})
class CDPlayerConfig{
}
public class  CDPlayerTest{ 
	@Test
    public void demo() {
      // ApplicationContext context=new AnnotationConfigApplicationContext(testBean.class);
       ApplicationContext context=new AnnotationConfigApplicationContext(CDPlayerConfig.class);
        String [] beanDefinitionNames=context.getBeanDefinitionNames();
        for (String name:beanDefinitionNames) {
            System.out.println("BeanName:"+name);
        }
}

运行结果

BeanName:CDPlayerConfig
BeanName:lonelyHeartsClub

test这个类没有被加载到,在找原因时我尝试将CDPlayerConfig这个类注解,然后新创建了一个CDPlayerConfig1

//@Configuration
//@ComponentScan(basePackages = {"com.configBean"})
//class CDPlayerConfig{
//}
@Configuration
@ComponentScan(basePackages = {"com.configBean"})
class CDPlayerConfig1{
}

调用时出现了异常

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning; nested exception is java.io.FileNotFoundException: class path resource [com/configBean/CDPlayerConfig.class] cannot be opened because it does not exist

将CDPlayerConfig给注解掉了为什么还是会出现异常?我发现在target的META-INF下有个spring.componts的文件
在这里插入图片描述
打开后发现里面是我之前被扫描到的bean,仔细看后发现里面过然有被我注解了的CDPlayerConfig类
在这里插入图片描述
抱着尝试的想法,我清空了spring.componts文件中的内容,再次尝试后发现之前不能被扫描到的test类,又可以被扫描到了,问题解决!
但存疑的是spring.componts文件是个什么文件,到底为什么会导致test类无法被扫描到我还是不太清楚。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读