Spring是最流行的Java企业级应用开发框架,全球数以百万的开发者在使用Spring框架创建高性能、易测试、可重用的代码。

Spring框架的核心特性可以应用于任何Java应用,但扩展的JavaEE平台上可以构建Web应用。Spring框架的目标是通过POJO编程模型,使J2EE的开发更容易,促进良好的编程实践。

POJO(Plain Old Java Object),是这样的一种“纯粹的”JavaBean,在它里面除了JavaBean规范的方法和属性没有别的东西,即private属性以及对这个属性方法的public的get和set方法。我们会发现这样的JavaBean很“单纯”,它只能装载数据,作为数据存储的载体,而不具有业务逻辑处理的能力。所以下面的代码被认为是POJO了。

public class DbHello implements Hello {
  private DictionaryDAO dao;
  public void setDao(DictionaryDAO dao) {
  this.dao = dao;
  }
}

其实这样认为是有问题的。这是一个不同时期发展而产生的概念:

JavaBean -->POJO ---> EJB 2 ---> Spring ---->EJB3/Spring

这是大致的历史路程,JavaBean 1.00-A规范在96年12月份被Sun公司发布,JavaBean规范定义了软件组件模型。尽管JavaBean为定义可重用的应用组件而设计,但是它们看似太简单了,以至于不能胜任任何“实际的”工作,企业级开发者的需求并未得到满足。

复杂的应用需要诸如事务管理、安全、分布式计算此类的服务,但是JavaBean规范并未直接提供。所以98年3月,Sun公司发布了EJB 1.0规范,该规范把Java组件的设计理念延伸到了服务器端,并提供了许多必需的企业级服务,但它不再像JavaBean规范那么简单了,事实上,除了名字,EJB Bean和JavaBean已经没有任何关系了。

尽管很多成功的系统是基于EJB构建的,但是EJB从未实现它的初衷:简化企业级应用的开发。EJB的声明式编程简化了基础框架层面的开发,如事务和安全;但是另一方面EJB在配套代码实现和部署描述符等方面变得异常复杂。

随着时间的推移,人们开始寻找更简单的方法,Java组件设计理念重新回到正轨。此时相对于EJB Bean有了新的概念:POJO,一个简单的普通的Java对象,不继承或不实现任何其它Java框架的类或接口。

POJO后来延伸为一种非侵入性代名词,也就是说:选择技术框架或开发框架,不能让别人基于你框架开发的JavaBean依赖你的框架,要实现这种目的,需要通过DI依赖注入 AOP等等技术才能实现。

客观的说EJB的发展促进了基于POJO的编程模型,引入AOP和DI等新的理念,最新的EJB规范相比之前有了前所未有的简化,但是对许多开发者而言,改变来得太迟了。到了EJB3发布的时候,其他基于POJO的开发框架在Java社区已经成为事实标准。

Spring框架已经成为基于POJO的轻量级开发框架的领导者。

JavaBean 是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:

  1. 这个类必须有一个公共的缺省构造函数。
  2. 这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
  3. 这个类应是可序列化的。

Spring用Bean或JavaBean表示应用组件,但这并不意味着Spring组件必须遵循JavaBean规范。一个Spring组件可以使任何形式的POJO。POJO可以视作JavaBean的“广泛定义”。

Spring框架概述的更多相关文章

  1. 1.Spring 框架概述

    目录 Spring 框架概述 1 我们所说的 "Spring "是什么意思 2. Spring和Spring框架的历史 3. 设计理念 4.反馈和贡献 5.开始使用 Spring ...

  2. Spring 框架概述

    ◆简介 目的:解决企业应用开发的复杂性 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能 范围:任何Java应用 Spring 框架是一个分层架构,由 7 个定义良好的模块组成. ...

  3. Spring框架介绍及使用

    Spring框架—控制反转(IOC)1 Spring框架概述1.1 什么是Spring1.2 Spring的优点1.3 Spring的体系结构2 入门案例:(IoC)2.1导入jar包2.2目标类2. ...

  4. Spring 框架(一)

    1 spring框架概述 1.1 什么是spring l Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert ...

  5. spring框架入门day01

    struts:web层,比较简单(ValueStack值栈,拦截器) hibernate:dao层,知识点杂 spring:service层,重要,讲多少用多少  --> [了解] spring ...

  6. Java匹马行天下之J2EE框架开发——Spring—>Spring框架知多少

    ————也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好自己现在的工作,努力提升自己的能力,踏踏实实地做一个程序员 一.思 ...

  7. Spring框架介绍及使用(转载)

    原文链接 Spring框架—控制反转(IOC) 1 Spring框架概述1.1 什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod ...

  8. Spring框架详解介绍-基本使用方法

    1.Spring框架-控制反转(IOC) 2.Spring框架-面向切面编程(AOP) 3.Spring 内置的JdbcTemplate(Spring-JDBC) Spring框架-控制反转(IOC) ...

  9. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

随机推荐

  1. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  2. 如何选择PHP框架?

    PHP是世界上最受欢迎的编程语言之—.最近发布的PHP7令这种服务器的编程语言比以前变得更好,更稳定了. PHP被广泛应用于重大的项目.例如Facebook就是使用PHP来维护和创建它们的内部系统的. ...

  3. JavaScript的继承实现方式

    1.使用call或apply方法,将父对象的构造函数绑定在子对象上 function A(){ this.name = 'json'; } function B(){ A.call(this); } ...

  4. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题

    1.鼠标进入容器方向的判定 判断鼠标从哪个方向进入元素容器是一个经常碰到的问题,如何来判断呢?首先想到的是:获取鼠标的位置,然后经过一大堆的if..else逻辑来确定.这样的做法比较繁琐,下面介绍两种 ...

  5. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  6. 奇葩问题-TextView无法获取值

    问题场景 前几天写一个界面的时候,遇到一个非常奇葩的问题.app第一次安装的时候,这里针对用户第一次安装的时候,后来是不会出现这个问题了.我明明是对某个界面的一个textview赋值了,而且服务端也返 ...

  7. Spring Enable annotation – writing a custom Enable annotation

    原文地址:https://www.javacodegeeks.com/2015/04/spring-enable-annotation-writing-a-custom-enable-annotati ...

  8. Go web开发初探

    2017年的第一篇博客,也是第一次写博客,写的不好,请各位见谅. 本人之前一直学习java.java web,最近开始学习Go语言,所以也想了解一下Go语言中web的开发方式以及运行机制. 在< ...

  9. Velocity初探小结--Velocity在spring中的配置和使用

    最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术, ...

  10. Java程序员:工作还是游戏,是该好好衡量一下了

    前阵子我终于下定决心,删掉了硬盘里所有的游戏. 身为一个程序猿,每天都要和各种新技术打交道,闲暇时间,总还得看一下各大论坛,逛逛博客园啥的,给自己充充电.游戏的话,其实我自小就比较喜欢,可以算是一种兴 ...