当前位置: 首页 > news >正文

一篇搞懂SpringMVC XML 配置标签<context:component-scan>

1. 作用

自动注解扫描

Spring 会扫描base-package指定包下所有类,识别 Spring 注解并自动创建 Bean 放入容器,不用手动写<bean>标签。

常用识别注解:

  • @Controller(控制器,SpringMVC 专用)
  • @Service(业务层)
  • @Repository(DAO 层)
  • @Component(通用组件)

例子:

<context:component-scan base-package="com.zhu.controller"/>

只扫描com.zhu.controller包,只会把该包下加了@Controller的控制器交给 Spring 管理。

2. 必须配套的 xmlns 约束

<context:xxx>属于context命名空间,beans 根标签必须声明

xmlns:context="http://www.springframework.org/schema/context"

同时还要补充对应的xsi:schemaLocation地址,否则 XML 报错、标签无法识别。

完整 beans 头部模板(复制直接用)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <!-- 你说的context命名空间 --> xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd <!-- context约束地址 --> http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描controller包,加载@Controller控制器 --> <context:component-scan basepackage="com.zhu.controller"/> </beans>

3. 常用扩展写法

(1)扫描多个包

逗号分隔:

<context:component-scan base-package="com.zhu.controller,com.zhu.service"/>

(2)只扫描 @Controller(SpringMVC 常用)

<context:component-scan base-package="com.zhu"> <!-- 只包含Controller注解 --> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <!-- 排除其他,避免重复实例化 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> </context:component-scan>

4. 和 SpringMVC 的关联

  1. 该标签写在springmvc.xml(SpringMVC 容器配置文件)

  2. 配合<mvc:annotation-driven/>使用,开启@RequestMapping请求映射、参数绑定、JSON 转换等 MVC 注解功能

    最简完整 SpringMVC 核心片段:

<!-- 扫描控制器注解 --> <context:component-scan base-package="com.zhu.controller"/> <!-- 开启SpringMVC注解驱动 --> <mvc:annotation-driven/>

5. 报错排查

如果报cvc-complex-type.2.4.a: 找不到元素 'context:component-scan' 的声明

原因:beans 头部缺少 xmlns:context 或对应的 xsd 约束地址,补上上面的命名空间即可。

http://www.gsyq.cn/news/1605342.html

相关文章:

  • Skill用得好,下班走得早:一文讲透Skill的结构与设计
  • Win11Debloat终极指南:4步快速清理Windows系统,性能提升70%
  • 私域直播SaaS大乱斗:小鹅通、微赞、有赞、悦邻,到底谁更适合“卖菜”的?
  • 第11章:对话管理与会话持久化
  • 162.乐理进阶:和声大调与旋律大调的实战应用与听觉辨识
  • 5分钟免费实现VR视频转2D播放的终极方案
  • MSPM0 DEBUGSS调试子系统:从SWD接口到功耗分析与安全控制
  • 海洋定点长期流速观测该选用哪款单点海流计?偶信告诉你答案
  • AI大模型就业:实践笔记 93
  • Java毕业设计-基于 Web 的网络域名管理系统的设计与实现 基于 Web 架构的域名信息管理系统设计与开发(源码+LW+部署文档+全bao+远程调试+代码讲解等)
  • 【排故】Linux 镜像恢复 VNC 黑屏卡死:NFS 开机挂载阻塞故障完整排障
  • all-MiniLM-L6-v2 完整详解
  • 【单片机毕业设计】基于 STM32 的老人健康运动监测装置设计,基于 STM32 的人体体征与跌倒报警设备开发(013301)
  • 社评:筑牢思想主权之基,开启文明认知跃迁——论“贾子理论大厦”在人工智能时代的范式革命与时代价值
  • 解锁高阶对话力:ChatGPT角色扮演提示词的5层结构化设计方法(附可立即复用的模板库)
  • 高效获取网盘真实下载地址:LinkSwift直链解析工具深度解析
  • SpiderFoot开源情报工具:自动化OSINT侦察框架部署与实战指南
  • rsync 和 scp 到底有啥区别?一次性看懂
  • Java毕设项目:基于 SpringBoot+Vue 的前后端分离博客系统设计与实现 现代化轻量化个人博客平台 (源码+文档,讲解、调试运行,定制等)
  • 环境准备1. Python 环境
  • 如何3分钟获取阿里云盘Refresh Token:扫码授权完整教程
  • 推荐看看=Obsidian
  • ROS2 Jazzy Python 动作通信(Action)完整实操教程(斐波那契案例,可中途取消+实时反馈)
  • 什么是AI Agent?
  • 终极Windows窗口大小调整指南:3分钟掌握WindowResizer强制调整技巧
  • 2026年批量采购无人机专用胶粘产品怎么选?行业选型指南
  • 【信号处理】为什么功率谱不是幅度谱的平方
  • 每天5分钟玩转 Kubernetes
  • 深入解析PCM178x系列DAC:Delta-Sigma架构原理与音频硬件设计实战
  • 牛客周赛 Round 150