日期:2014-05-18  浏览次数:20729 次

spring component-scan扫描配置的小疑惑
<context:component-scan base-package="com.xxx.**.web.controller"/>

spring中这样扫描包,

问1: 其中的**  代表几级目录?  是两级目录? 还是 多级目录? 还是都可以?
问2: 用   ..    代替   **   ,
<context:component-scan base-package="com.guohualife..web.controller"/>
这样配置, 中间代表的是几级目录?  
Spring

------解决方案--------------------
两个**代表一级或者多级目录。一个*代表文件。点和*应该是一样的效果
------解决方案--------------------
同意楼上的。
------解决方案--------------------
引用:
<context:component-scan base-package="com.xxx.**.web.controller"/>、

** :
2级可以  3级可以

*.* :2级可以 3级不可以

.. :
2级不可以  3级不可以


本人亲测、  


但是在
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.xxx..service.*.*(..))" advice-ref="hrTxAdvice" />
</aop:config>


这个配置中, ..  代表的是多级目录

大家快回复,结贴给分咯


你这里的配置 :execution(* com.xxx..service.*.*(..))
表示的是xxx包或者其子包下的service包中所有类的所有带任何个数参数的方法;
其中:
1、com.xxx..service 表示的是:xxx包或者其子包下的service包;
2、(..)这个不是目录设置,而是方法的配置,表示的是:匹配了接受任意数量参数的方法(零或者更多参数),如果配置的是:(*)就表示 方法接收一个参数,此参数是任意类型的;
3、service.*.*表示的是:service包下任意类的任意方法;