zoukankan      html  css  js  c++  java
  • @ComponentScan 回顾

    一、最近使用

    因为 @SpringBootApplication 已经集成了它,平时就不怎么用。

    最近在搭建项目框架,

    使用的 maven 子模块

    @SpringBootApplication 在boot模块中。

    主要业务代码在另外两个子模块中。

    项目启动时发现, 只启动了boot模块。两外两个模块未启动。

    查找原因发现,是因为项目路径。

    @SpringBootApplication 启动文件在 com.iot.rule 文件夹下。

    而两个子模块的默认扫描文件路径是 :com.iot.flow 和 com.iot.forard

     

     

     

    解决办法:添加 Config 文件。

    添加 @ComponentScan("com.iot"),扫描 com.iot 下的包。 启动成功。

    /** * @author wgy * @version 1.0 * @description 启动自动扫描地址 * @date 2021/3/11 17:27 */ @Configuration @ComponentScan("com.iot") public class Config { }

     

    二、 @ComponentScan 的知识点回顾

    该注解默认会扫描该类所在包下所有 配置类,相当于之前的 <context:component-scan>

     

    2.1 : @ComponentScan 的参数

    value : 指定要扫描的包

    excludeFilters : 按照规则排除某些包的扫描

    includeFilters : 按照规则只包含某些包的扫描

     

    @ComponentScan(value = "com.iot", includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Component.class})})

     

    type = FilterType.ANNOTATION 是通过注解来过滤。

    配置后: 在spring扫描时,跳过 com.iot 下所有被 @Component 注解标注的类。

     

    @ComponentScan(value = "com.iot", includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value = {Component.class})}, useDefaultFilters = false )

    配置后: 在spring扫描时,只扫描 com.iot 下所有被 @Controller 注解标注的类。

    useDefaultFilters = false , 由于 useDefaultFilters 默认为 true, spring 默认会自动发现 @Component 、@Repository、@Service 和 @Controller 注册的类。禁用后再去实现 includeFilters 。

     

    2.2 :jdk 8 中, @ComponentScan 要和 @Configuration 一起使用才能起作用。

     

    2.3 :@ComponentScans 可以 添加多个 @ComponentScan 实现多个扫描规则。

    @Configuration @ComponentScans( value = { @ComponentScan(value = "com.iot.forward"), @ComponentScan(value = "com.iot.flow") } ) public class Config { }

     

  • 相关阅读:
    phrase(短语)
    AS3版MP3播放器核心
    内存回收机制
    检测FPS和内存占用
    NetConnection读取asp.net
    基于flash AS3.0 的BASE64编码与解码类
    as3访问WebService,SOAP协议
    六种角度看OCA与OCP、OCM区别
    ORACLE报表触发器
    ORACLE EBS常用表
  • 原文地址:https://www.cnblogs.com/wgy1/p/14525173.html
Copyright © 2011-2022 走看看