区别:
- 1、<context:annotation-config>:【自动装配】 是用于激活(@Autowired)那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)。
- 2、<context:component-scan>:【自动注册+装配】<context:component-scan>除了具有<context:annotation-config />的功能之外,还具有自动将带有@component,@service,@Repository等注解的对象注册到spring容器中的功能。
- <context:component-scan/>包含了<context:annotation-config/>
<context:component-scan>扫描内容:
- 1、配置:<context:component-scan base-package="com.test" />
效果:扫描com.test包下的带有@component,@service,@Repository等注解的类,并注册到spring容器中
- 2、配置:<context:component-scan base-package="com.test" use-default-filters="false"/>
效果:啥也不扫描,也没有向spring注册任何的类
- 3、配置:
<context:component-scan base-package="com.test" use-default-filters="false">
<!-- 扫描符合@Service的类 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
效果:扫描com.test包下的带有@service注解的类,并注册到spring容器中
- 4、配置:
<context:component-scan base-package="com.test" use-default-filters="false">
<context:include-filter type="regex" expression="com.test.entity.*" />
</context:component-scan>
效果:扫描com.test.entity包下的带所有类,并注册到spring容器中
- 5、配置:
<context:component-scan base-package="com.test" >
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
效果:扫描com.test包下的带有@component,@Repository等注解的类,并注册到spring容器中(注意:不包含@service注解的类)
- 6、配置:
<context:component-scan base-package="com.test" use-default-filters="false">
<!-- 扫描符合@Service @Repository的类 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository" />
<context:include-filter type="regex" expression="com.test.entity.*"/>
</context:component-scan>
效果:扫描com.test包下的@Service、@Repository注解的实体和com.test.entity包下的所有实体【不会扫描@component等其他注解,因为use-default-filters="false"关闭了默认扫描方式】 - 总结:
use-default-filters默认是true,即默认是会扫描base-package包及子包下的@component,@service,@Repository注解,若设置为false,则不扫描@component,@service,@Repository注解
context:include-filter是以base-package为根目录,自定义添加需要扫描的bean【即不需要添加任何注解都能被扫描的bean】 - 这只是个人的总结,有错误请指出
相关推荐
2. **XML配置问题**:确保你的Spring配置文件(如`applicationContext.xml`)正确包含了`<context:component-scan>`或`<context:annotation-config>`元素,它们是启用注解配置的关键。 3. **编译器设置**:检查你的...
它包括了如`<context:component-scan>`、`<context:annotation-config>`等元素,使得我们可以方便地启用注解驱动的配置和组件扫描,发现并自动装配带有特定注解的类。此外,它还支持消息源、AOP代理、事件监听等特性...
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/> ...
<context:annotation-config /> <context:component-scan base-package="com.mvc.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component...
2. `<context:component-scan>`: - 这个元素告诉Spring扫描指定包及其子包,寻找带有`@Controller`注解的类,并将它们作为bean进行管理。 3. `<mvc:annotation-driven>`(通常也会包含,但此处未提供): - 这个...
在这个主题中,我们将深入探讨`<context:annotation-config>`与`<context:component-scan>`的区别,事务管理器的配置,以及Spring开发环境的选择和数据源的配置。 1. `<context:annotation-config>`和`<context:...
其次,`context.xsd`扩展了`beans.xsd`,提供了更多上下文相关的配置,如`<context:component-scan>`用于自动扫描并注册带有特定注解的bean,实现了基于注解的组件发现。此外,`<context:property-placeholder>`则...
通过`<aop:config>`和`<aop:advisor>`等元素,我们可以定义切面、通知和匹配规则,实现代码的解耦和模块化。在这一版本中,Spring对AOP的Schema进行了细化,使得切面的定义更加精确和灵活。 再者,Spring的数据库...
`context`命名空间下的 `<context:component-scan>`、`<context:property-placeholder>`等元素,用于扫描组件、加载外部属性文件,增强了Spring的应用范围和灵活性。 "cache"模块则提供了缓存抽象,支持如 EhCache...
<context:component-scan base-package="org.whvcse"></context:component-scan> <tx:annotation-driven transaction-manager="txManager" /> <!-- <aop:config> <aop:pointcut id="defaultServiceOperation" ...
此外,`<context:annotation-config>`和`<context:component-scan>`分别用于启用注解驱动和扫描特定包下的@Component注解。 6. **基于Java注解装载配置元信息**:Java配置类通过`@Configuration`、`@Bean`等注解...
在上面的配置文件中,我们使用了 `<context:annotation-config/>` 和 `<context:component-scan base-package="testspring.main"/>` 两个标签。 `<context:annotation-config/>` 用于启用注释型的 IOC,而 `<context...
在上面的配置文件中,我们使用了 `<context:annotation-config/>` 和 `<context:component-scan>` 两个元素。`<context:annotation-config/>` 元素用于激活注解驱动的 Bean, `<context:component-scan>` 元素用于...
3. ** Context `.xsd`**:扩展了基本的Bean配置,引入了上下文相关的功能,如`<context:component-scan>`用于自动发现和注册bean,以及`<context:property-placeholder>`用于处理属性占位符。 4. ** JDBC `.xsd`**...
在这个配置中,`<context:component-scan>`用于自动扫描指定包下的类,发现`@Repository`、`@Service`等注解并进行注册。`<context:annotation-config>`启用对注解的处理,使得我们可以使用`@Transactional`注解来...
<context:component-scan base-package="com.cupdata.controller"></context:component-scan> </beans> ``` 在 `com.cupdata.controller` 包下,添加控制器类,使用 `@RestController` 和 `@RequestMapping` 注解...
3. **组件扫描**:通过`<context:component-scan>`元素,不仅注册注解处理器,还可以扫描指定包下的类,自动发现和处理注解: ```xml <context:component-scan base-package="com.yourpackage"/> ``` `base-...
`<context:component-scan>`元素用于指定需要扫描的包,这样Spring会自动发现这些包下标记了如`@Component`、`@Service`、`@Repository`等注解的类,并将它们注册为Bean。 接着,我们看DAO层的配置。使用`@...
- `<context:component-scan>`: 扫描指定包下的组件。 - `<context:annotation-config>`: 启用注解驱动。 - `<context:property-placeholder>`: 引用外部属性文件。 - `<mvc:resources>`: 配置静态资源路径。 - `<tx...
在Spring中,包扫描是通过`<context:component-scan>`标签实现的,该标签位于XML配置文件中。这个标签告诉Spring去指定的包及其子包下查找标记为`@Component`、`@Service`、`@Repository`和`@Controller`的类,这些...