context:component-scan使用说明

context:component-scan使用说明在 xml 配置了这个标签后 spring 可以自动去扫描 base pack 下面或者子包下面的 java 文件 如果扫描到有 Component Controller Service 等这些注解的类 则把这些类注册为 bean 注意 如果配置了那么标签就可以不用再 xml 中配置了 因为前者包含了后者 另外还提供了两个子标签 1 2 在说明这两个子标签前 先说一下有一个 u

   在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean

   注意:如果配置了

那么
标签就可以不用再xml中配置了,因为前者包含了后者。另外

还提供了两个子标签

1.        

2.       

在说明这两个子标签前,先说一下

有一个use-default-filters属性,该属性默认为true,
这就意味着会扫描指定包下的全部的标有
@Component
的类,并注册成
bean.
也就是
@Component
的子注解
@Service,@Reposity
。所以如果仅仅是在配置文件中这么写


“tv.huan.weisp.web”/>

 Use-default-filter此时为true那么会对base-package包或者子包下的所有的进行java类进行扫描,并把匹配的java类注册成bean。

 可以发现这种扫描的粒度有点太大,如果你只想扫描指定包下面的Controller,该怎么办?此时子标签

就起到了勇武之地。如下所示


tv.huan.weisp.web .controller”>  

   

  

这样就会只扫描base-package指定下的有@Controller下的java类,并注册成bean

   但是因为use-dafault-filter在上面并没有指定,默认就为true,所以当把上面的配置改成如下所示的时候,就会产生与你期望相悖的结果(注意base-package包值得变化)


tv.huan.weisp.web”>  

   

  

此时,spring不仅扫描了@Controller,还扫描了指定包所在的子包service包下注解@Service的java类

此时指定的include-filter没有起到作用,只要把use-default-filter设置成false就可以了。这样就可以避免在base-packeage配置多个包名这种不是很优雅的方法来解决这个问题了。

另外在我参与的项目中可以发现在base-package指定的包中有的子包是不含有注解了,所以不用扫描,此时可以指定

来进行过滤,说明此包不需要被扫描。综合以上说明

Use-dafault-filters=”false”的情况下:

指定的不扫描,

指定的扫描

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206028.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:38
下一篇 2026年3月19日 下午4:39


相关推荐

  • javascript 之 prototype与__proto__

    javascript 之 prototype与__proto__

    2022年3月13日
    41
  • java物联网框架_物联网学java吗

    java物联网框架_物联网学java吗基于java的物联网架构实现前言:19年11月开始从【金融】行业转【物联网】,路途坎坷,一个人摸索前进,不过也学到了很多新的东西,交了很多好朋友,在此感谢各位!以下是一些经验分享,希望能帮到有需要的朋友。1、架构思路考虑了很久打算用springboot+mysql去实现,因为熟悉这个框架,而且能减轻70%的机械性开发工作量,以后改springcloud也方便(注意逻辑实现不然工作量很大)。物联网和互联网可以说是有共同点的,但是也有很多的不一样。先说协议,互联网很多都是https或者ht

    2026年1月18日
    5
  • Linux安装yum工具-安装过程

    Linux安装yum工具-安装过程Linux 安装 yum 工具 安装过程

    2026年3月17日
    1
  • touches和targetTouches的区别

    touches和targetTouches的区别首先 如果我手指触碰的点都在我所绑定的事件上 比如说都绑在了一个 div 上 而我的两个手指都触摸这个 div 那么 touches 和 targetTouche 是没有区别的 都可以获得一个 TouchList 列表 里面包含了触碰点的信息 但是 如果我用两个手指 一个触摸绑定事件的 div 另一个触摸除了此 div 的其他地方 那么 touches 和 targetTouche 就是有区别的了 touches

    2026年3月18日
    1
  • PreparedStatement 不定参数处理「建议收藏」

    PreparedStatement 不定参数处理「建议收藏」最近项目用到PreparedStatement,根据输入条件查询数据,输入条件不为空,则参与查询,为空,则不参与查询。网上搜了,也是按照网上的方法,也不算原创,记录一下。参考文章:https://blog.csdn.net/dream_broken/article/details/44681597/代码如下:Connectionconn=null;PreparedStatem…

    2022年6月1日
    38
  • 限时免费!快来百度智能云一键部署OpenClaw

    限时免费!快来百度智能云一键部署OpenClaw

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号