Spring基于annotation的依赖注入实现
一、工作目的
以前通常我们将Action、Service、Dao层的对象都以配置文件的形式交给Spring管理,Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大减少。不过上述方式有一定的局限性,试想我们的系统规模比较大的时候,需要交给Spring管理的Bean数量庞大,如果都写在Spring配置文件applicationContext.xml中,代码的可读性、可维护性会变得很差。本例将简要介绍 Spring中常使用的annotation,并以演示通过annotation的方式完成Spring的依赖注入。
二、具体内容及步骤
Spring3.0 以前,使用 XML 进行依赖配置几乎是唯一的选择。Spring 3.0 的出现改变了这一状况,它提供了一系列的针对依赖注入的注解,这使得Spring IoC 在 XML 文件之外多了一种可行的选择。
1、将类标识为 Bean
使用@Repository、@Service、@Controller和@Component,@Repository 注解属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO 类上即可。同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用 Bean 的自动扫描功能,这可以通过 <context:component-scan/> 实现。如下所示:
<span style="font-family:Times New Roman;"><!-- Spring搜索路径配置,如下配置将搜索工程com目录下标识的Bean-->
<context:annotation-config />
<context:component-scan base-package="com" >
</context:component-scan></span>
这样我们不再需要在XML中显式使用 <bean/> 进行 Bean 的配置。Spring 在容器初始化时将自动扫描 base-package 指定的包及其子包下的所有 class 文件&#x