springmvc component-scan

我开始这样子配置项目

springmvc配置扫描:

<context:component-scan base-package="com" use-default-filters="false">
   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

spring配置扫描:

<context:component-scan base-package="com" use-default-filters="false">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

 

上面这样子写,自己是这样子理解的:springmvc扫描的话,就只扫描controller,   spring扫描的话,就只不扫描controller,其他都扫描。

但是结果是  在controller里面,使用@Autowired  注入service的时候,报错。

 

 

 

 

分析:

其实自己思路是对的,就该springmvc扫描的话,就只扫描controller,   spring扫描的话,就只不扫描controller,其他都扫描。

只是自己上面的配置错了。

应该:

springmvc:

<context:component-scan base-package="com" use-default-filters="false">
   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

spring:

<context:component-scan base-package="com" use-default-filters="true"> <!-- 这里use-default-filters也可以不写-->
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

分析:

use-default-filters 意思是扫描该配置包以及子包..下面的所有类型的注解,包括但不限于  Controller、Service、Component...

springmvc只扫描Controller,不扫描其他的,那么就需要把use-default-filters设置为false,都不扫描。  然后加上include-filter表示只扫描Controller.

spring的话,不把use-default-filters设置为false,让他默认,也就是全部扫描,但是我们又不要Controller,所以再加上exclude-filter,排除掉Controller就可以了哈。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值