描述
context:component-scan用于扫描指定包内的Bean。
使用方式
常用配置示例如下:
<?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-4.2.xsd">
<context:component-scan base-package="com.demo.*" annotation-config="true"
name-generator="org.springframework.context.annotation.AnnotationBeanNameGenerator"
use-default-filters="true">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>
参数说明
base-package
配置需要扫描的包路径,多个包使用逗号隔开
base-package="com.demo1.*,com.demo2.*"
annotaion-config
向spring中注册一下处理器,这些处理器处理@Autowired等注解
name-generator
指定生成Bean名字的生成器,在向容器中注册bean时需要指定一个名字,Bean的名字由该类生成。
user-default-filters
是否使用默认的扫描过滤,component-scan
默认情况下扫描@Controller、@Service等注解,如果user-default-filters设置为false将扫描不到这些注解注解的Bean
exclude-filter
context:exclude-filter
是子标签,用于指定component-scan
不扫描的内容
include-filter
context:include-filter
是子标签,用于指定component-scan
扫描的内容,当user-default-filters为false时,将只扫描其指定的内容,当为true时,连同默认的内容一起扫描。
一般情况下都是配合
user-default-filters=false
使用
网友评论