转 Spring 组件 <context:component-scan base-pakage="">用法

1.如果不想在xml文件中配置bean,我们可以给我们的类加上spring组件注解,只需再配置下spring的扫描器就可以实现bean的自动载入。

<!-- 注解注入 -->

<context:annotation-config></context:annotation-config>

<context:component-scan base-package="com.liantuo.hotel.common.service.impl" />

<context:component-scan base-package="com.liantuo.hotel.common.dao.ibatis" />

<context:component-scan base-package="com.liantuo.hotel.app.dao.ibatis" />

<context:component-scan base-package="com.liantuo.hotel.app.service" />

<context:component-scan base-package="com.liantuo.hotel.app.service.ibatis" />

2.下面是引用spring framework开发手册中的一段话

Spring 2.5引入了更多典型化注解(stereotype annotations): @Component@Service和 @Controller@Component是所有受Spring管理组件的通用形式;而@Repository@Service和 @Controller则是@Component的细化,用来表示更具体的用例(例如,分别对应了持久化层、服务层和表现层)。也就是说,你能用@Component来注解你的组件类,但如果用@Repository@Service 或@Controller来注解它们,你的类也许能更好地被工具处理,或与切面进行关联。例如,这些典型化注解可以成为理想的切入点目标。当然,在Spring Framework以后的版本中, @Repository@Service和 @Controller也许还能携带更多语义。如此一来,如果你正在考虑服务层中是该用@Component还是@Service,那@Service显然是更好的选择。同样的,就像前面说的那样, @Repository已经能在持久化层中进行异常转换时被作为标记使用了。”

3.有了<context:component-scan>,另一个<context:annotation-config/>标签根本可以移除掉,因为已经被包含进去了。

4.<context:component-scan>提供两个子标签:<context:include-filter>和<context:exclude-filter>各代表引入和排除的过滤。

如:<context:component-scan base-package="com.xhlx.finance.budget" >

<context:include-filter type="regex" expression=".service.*"/>
</context:component-scan>

5.filter标签在Spring3有五个type,如下:

Filter Type Examples Expression Description
annotation org.example.SomeAnnotation 符合SomeAnnoation的target class
assignable org.example.SomeClass 指定class或interface的全名
aspectj org.example..*Service+ AspectJ语法
regex org\.example\.Default.* Regelar Expression
custom org.example.MyTypeFilter Spring3新增自訂Type,实作org.springframework.core.type.TypeFilter

源:http://blog.csdn.net/a9529lty/article/details/8251003

时间: 2024-10-05 08:43:36

转 Spring 组件 <context:component-scan base-pakage="">用法的相关文章

spring组件&lt;context:component-scan&gt;详解

上篇文章我们引入注解,在配置中用到了<context:annotation-config/>有助于完全消除Spring配置中的<property>和<constructor-arg>元素,我们仍需要使用<bean>元素显示定义Bean. 但是Spring还有另一种技巧<context:component-scan>元素除了完成与<context:annotation-config>一样的工作,还允许Spring自动检测Bean和定义的

Spring组件扫描&lt;context:component-scan/&gt;使用详解

<?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/sch

Spring组件扫描&lt;context:component-scan/&gt;使用详解(转)

1.如果不想在xml文件中配置bean,我们可以给我们的类加上spring组件注解,只需再配置下spring的扫描器就可以实现bean的自动载入. <!-- 注解注入 --> <context:annotation-config></context:annotation-config> <context:component-scan base-package="com.liantuo.hotel.common.service.impl" /&g

(转载)spring组件扫描&lt;context:component-scan/&gt;使用详解

好文章,原文地址:http://blog.sina.com.cn/s/blog_57769b7b0100tt5x.html 关于spring自动检测组件的使用方式网上太多了,而且也不是我记录的重点,我想说下一点可能你还不知道的经验 我们知道如果不想在xml文件中配置bean,我们可以给我们的类加上spring组件注解,只需再配置下spring的扫描器就可以实现bean的自动载入. 先写一个小例子,剩下的在下面解释 <!-- 定义扫描根路径为leot.test,不使用默认的扫描方式 --> &l

在完全由Spring管理的环境中使用Spring的Context获取Bean实例

在大型的应用中,常常会有很灵活的需求,而在使用了框架之后,虽然可以大大提高开发的效率,但同时,也把我们框到一个架子中了. 下面先说一下我遇到的问题,事情大概是这样的: @Component @Scope("prototype") public class Action1 implements Action{ ..... } @Component @Scope("prototype") public class Action2 implements Action{ .

spring 组件Scope(request,session)示例

上回说到, spring组件的注解Scope大约有singleton.prototype.request.session.global session 这么几种常用的场景.这里需要特别说明一下,根据源代码显示 Scope注解分为ConfigurableBeanFactory和WebApplicationContext两个大类,ConfigurableBeanFactory包含(singleton.prototype)两种Scope,WebApplicationContext下面有(ROOT_WE

严重: Servlet.service() for servlet [spring] in context with path [/XX] threw exception [Request

一.描述:最近在使用springmvc+spring+hibernate4.0进行整合开发时出现了 严重: Servlet.service() for servlet [spring] in context with path [/XX] threw exception [Request processing failed; nested exception is org.hibernate.HibernateException: No Session found for current thr

spring中 context:property-placeholder 导入多个独立的配置文件

spring中 context:property-placeholder 导入多个独立的 .properties配置文件? Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个 org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的 Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描(Spring 3.1已经使用PropertySourcesPlaceh

Spring 使用context:annotation-config的设置

Spring 使用context:annotation-config的设置: 还是需要声明Bean的,并且还可能自己定义Annotation: xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.