先进的开发框架 理解什么是spring.pdfVIP

  • 2
  • 0
  • 约1.11万字
  • 约 10页
  • 2018-06-07 发布于浙江
  • 举报
先进的开发框架 理解什么是spring

最近研究Spring,她包含的编程思想让我耳目一新。所以写下这篇入门级文章供新 手参考。我不是什么Spring 的资深研究人员,我只是现学现卖。所以文章也只能是 肤浅单薄,错误难免,还请见谅。 一、 Spring诞生 Spring 是一个开源框架,目前在开源社区的人气很旺,被认为是最有前途的开源框 架之一。她是由RodJohnson 创建的,她的诞生是为了简化企业级系统的开发。说 道Spring 就不得不说EJB,因为Spring在某种意义上是EJB 的替代品,她是一种轻 量级的容器。用过EJB 的人都知道EJB 很复杂,为了一个简单的功能你不得不编写 多个Java 文件和部署文件,他是一种重量级的容器。也许你不了解EJB,你可能对 “轻 (重)量级”和“容器”比较陌生,那么这里我简单介绍一下。 1、什么是容器 “容器”,这个概念困扰我好久。从学习Tomcat 开始就一直对此感到困惑。感性的来 讲,容器就是可以用来装东西的物品。那么在编程领域就是指用来装对象 (OO 的 思想,如果你连OO 都不了解,建议你去学习OO 先)的对象。然而这个对象比较 特别,它不仅要容纳其他对象,还要维护各个对象之间的关系。这么讲可能还是太 抽象,来看一个简单的例子: 代码片断1: public class Container { public void init() { Speakers new Speaker(); Greeting g new Greeting(s); } } 可以看到这里的Container 类 (容器)在初始化的时候会生成一个Speaker 对象和一 个Greeting对象,并且维持了它们的关系,当系统要用这些对象的时候,直接问容 器要就可以了。这就是容器最基本的功能,维护系统中的实例 (对象)。如果到这 里你还是感到模糊的话,别担心,我后面还会有相关的解释。 2、轻量级与重量级 所谓“重量级”是相对于“轻量级”来讲的,也可以说“轻量级”是相对于重量级来讲的。 在Spring 出现之前,企业级开发一般都采用EJB,因为它提供的事务管理,声明式 事务支持,持久化,分布计算等等都“简化”了企业级应用的开发。我这里的“简化” 打了双引号,因为这是相对的。重量级容器是一种入侵式的,也就是说你要用EJB 提供的功能就必须在你的代码中体现出来你使用的是EJB,比如继承一个接口,声 明一个成员变量。这样就把你的代码绑定在EJB 技术上了,而且EJB 需要JBOSS 这样的容器支持,所以称之为“重量级”。 相对而言“轻量级”就是非入侵式的,用Spring开发的系统中的类不需要依赖Spring 中的类,不需要容器支持 (当然Spring 本身是一个容器),而且Spring 的大小和运 行开支都很微量。一般来说,如果系统不需要分布计算或者声明式事务支持那么 Spring 是一个更好的选择。 二、 几个核心概念 在我看来Spring 的核心就是两个概念,反向控制 (IoC),面向切面编程 (AOP)。 还有一个相关的概念是POJO,我也会略带介绍。 1、POJO 我所看到过的POJO全称有两个,Plain Ordinary Java Object,Plain OldJava Object, 两个差不多,意思都是普通的Java 类,所以也不用去管谁对谁错。POJO 可以看做 是简单的JavaBean (具有一系列Getter,Setter 方法的类)。严格区分这里面的概念 没有太大意义,了解一下就行。 2、 IoC IoC 的全称是Inversion ofControl,中文翻译反向控制或者逆向控制。这里的反向是 相对EJB 来讲的。EJB 使用JNDI 来查找需要的对象,是主动的,而Spring 是把依 赖的对象注入给相应的类 (这里涉及到另外一个概念“依赖注入”,稍后解释),是 被动的,所以称之为“反向”。先看一段代码,这里的区别就很容易理解了。 代码片段2:

文档评论(0)

1亿VIP精品文档

相关文档