Spring和Spring MVC容器分开包扫描

本文介绍了如何将Spring MVC容器与Spring容器分开进行包扫描,Spring MVC主要负责Controller层,而Spring容器管理Service、Domain、Dao等其他层。通过使用<context:component-scan>标签,并结合<context:exclude-filter>和<context:include-filter>来精确控制扫描范围,避免重复扫描。同时提到了使用逗号分隔的多包扫描方式,但这种方式在包数量过多时不够理想。
摘要由CSDN通过智能技术生成

1. Spring MVC容器

一般来说,Spring MVC主要负责的是Controller层,所有可以简单的把配置文件写为

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd 
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 解决@Controller的前提配置 -->
    <mvc:annotation-driven/>
    <!-- 包扫描,将注解的类注入(扫描Controller层) -->
    <context:component-scan base-package="xyz.cglzwz.controller"/>
</beans>

2. Spring 容器

作为父容器,Spring容器管理其余层,如Service, Domain, Dao等等

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 包扫描,将注解的类注入 -->
    <context:component-scan base-package="xyz.cglzwz.*">
        <!-- 不扫描@Controller注解 -->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

</beans>

使用<context:component-scan>的两个子标签可以很好的解决重复扫描的问题

  1. <context:exclude-filter>不扫描
  2. <context:include-filter>加入扫描

当然使用多个包扫描也可以,逗号分割,但是多的话很不雅观。如下

<context:component-scan base-package="xyz.cglzwz.service, xyz.cglzwz.dao, xyz.cglzwz.domain"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值