Spring框架 基于注解配置(四)

来源:互联网 发布:linux中sleep函数 编辑:程序博客网 时间:2024/05/17 01:03

一、为什么要使用注解?

  • 它可以充分利用 Java 的反射机制获取类结构信息,可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。
  • 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率。
  • 因此在很多情况下,注解配置比 XML 配置更受欢迎,注解配置有进一步流行的趋势.............

二、如何使用注解?
     spring框架使用的是分层的注解
*@Component   :泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
*@Repository :用于标注DAO
*@Service :   用于标注业务类

      @Controller  :用于标注控制器类


  (1)在applicationContext.xml文件中配置如下:

<!-- (1)导入注解 命名空间   xmlns:context="http://www.springframework.org/schema/context"   http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context-4.1.xsd--><!-- (2)导入DI的注解自动扫描机制   base-package:自动扫描所在的包下面文件及子文件;--><context:component-scan base-package="com.hlx.annotation.mvc"></context:component-scan>
  

(2)DAO类

 @Repository("studentDaoImpl")   // @Repository用于标注数据访问组件,即DAO组件。public class StudentDaoImpl implements StudentDao {}

 (3)业务类

@Service   //@Service用于标注业务层组件public class StudentServiceImpl implements StudentService {//底层数据@Resource(name="studentDaoImpl")private StudentDao studentDao;}


 (4)Action类

@Controller   // @Controller用于标注控制层组件(如struts中的action)、public class StudentAction {   //业务数据@Resource(name="studentServiceImpl")private StudentService studentService;}

   总之,为Spring框架的注解开发常用注解,总体感觉还是比较简单,最起码相对其它两个框架而言,主要是通过注解完成对象的管理,和对象之间的组合,即SpringIoC功能。注解的开发还是能大大提高我们的开发效率的,但是还是那句话,它在一定程度上违背了OCP原则,所以大力推荐使用注解的开发的前提还是我们的需求比较固定,变动较小。


0 0