Spring Boot笔记-@ComponentScan初步解析

Java 同时被 3 个专栏收录
339 篇文章 3 订阅
46 篇文章 0 订阅
136 篇文章 2 订阅

@ComponentScan默认是扫描当前包下的所有类(包括子包)

如下:

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
public class DemoApplication {

    public static void main(String[] args) {

        ConfigurableApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);
        String[] beanDefinitionNames = ctx.getBeanDefinitionNames();
        for(String name : beanDefinitionNames){

            System.out.println(name);
        }
    }

}

这里有2个bean

打印如下:

@Component
public class MyComponent {
}

改为:

public class MyComponent {
}

就不会被自动装配。

 

下面将component包放到外面后如下图:

就装配不了了。

但可以在@ComponentScan添加参数

如下代码:

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(basePackages  = "cn.it1995")
public class DemoApplication {

    public static void main(String[] args) {

        ConfigurableApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);
        String[] beanDefinitionNames = ctx.getBeanDefinitionNames();
        for(String name : beanDefinitionNames){

            System.out.println(name);
        }
    }

}

就可以了!

或者用这种方式

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
@ComponentScan(basePackages  = "cn.it1995.component")
public class DemoApplication {

    public static void main(String[] args) {

        ConfigurableApplicationContext ctx = SpringApplication.run(DemoApplication.class, args);
        String[] beanDefinitionNames = ctx.getBeanDefinitionNames();
        for(String name : beanDefinitionNames){

            System.out.println(name);
        }
    }

}

 

 

 

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值