查看本文 要求您要能过利用spring注解方式创建对象 如果尚未掌握 可以查看我的文章
java spring 通过注解方式创建对象
首先 最基础的就是
base-package 指定扫描的包
参考代码如下
<context:component-scan base-package="Bean.UserData"></context:component-scan>
这段代码就表示 spring 将扫描Bean包下的UserData包下的所有类
use-default-filters 值为布尔类型 true/false
表示是否使用默认的扫描规则 默认的就是 指定的包 全部扫 不使用 你就可以写自己的规则
true 为采用默认方式 false 为 不采用默认方式
参考代码如下
<context:component-scan base-package="Bean.UserData" use-default-filters="true"></context:component-scan>
这段代码的意思 就是 扫描 Bean下UserData包 use-default-filters true 表示采用默认方式 全部扫描
然后我们来看 这样一段代码
<context:component-scan base-package="Bean.UserData" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
</context:component-scan>
首先 base-package指定的包说好几遍了 就不说了 然后 use-default-filters 为 false 说明 我们配置 不使用它默认的匹配方式
那么 下面context:include-filter就是写条件的地方
type为annotation 表示 我们在这个包下扫描 只扫注解 expression 指定 org.springframework.stereotype.Component
这是一种注解的方式 上次我们用过 不知道大家还记不记得?
把注解的条件进一步缩小
只扫描Component注解形式的
然后 我们来看这段代码
<context:component-scan base-package="Bean.UserData">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
</context:component-scan>
大家可以看到 这次我们少了 use-default-filters=“false” 那么 不设置 use-default-filters 他的默认值就是true
但我们下面写了include-filter
此时 条件就会反过来
之前是只扫描符合条件的 这次 是不扫描符合条件的