石家庄教育平台网站建设,福建建设厅网站,宜宾网站网站建设,风铃网站具体是做那方面的Spring 是 Java EE 编程领域的一款轻量级的开源框架#xff0c;由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立#xff0c;它的目标就是要简化 Java 企业级应用程序的开发难度和周期。
Spring 自诞生以来备受青睐#xff0c;一直被广大开发人员作为 Java 企业…Spring 是 Java EE 编程领域的一款轻量级的开源框架由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立它的目标就是要简化 Java 企业级应用程序的开发难度和周期。
Spring 自诞生以来备受青睐一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日Spring 俨然成为了 Java EE 代名词成为了构建 Java EE 应用的事实标准。
Spring 的诞生与发展
早期的 J2EEJava EE 平台推崇以 EJB 为核心的开发方式但这种开发方式在实际的开发过程中存在种种弊端例如使用复杂、代码臃肿、代码侵入性强、开发周期长、移植难度大等。
Rod Johnson 在其 2004 年编著的畅销书《Expert One-on-One J2EE Development without EJB》中针对 EJB 各种臃肿的结构进行了逐一的分析和否定并分别以更加简洁的方式进行了替换。
在这本书中Rod Johnson 通过一个包含 3 万行代码的附件展示了如何在不使用 EJB 的情况下构建一个高质量、可扩展的 Java 应用程序。在这个附件中Rod Johnson 编写了上万行基础结构代码其中包含了许多可重用的 Java 接口和类例如 ApplicationContext、BeanFactory 等。这些类的根包被命名为 com.interface21含义为这是提供给 21 世纪的一个参考。
这本书影响甚远后来 Rod Johnson 将 com.interface21 的代码开源并把这个新框架并命名为“Spring”含义为Spring 像一缕春风一样扫平传统 J2EE 的寒冬。
2003 年 2 月Spring 0.9 版本发布它采用了 Apache 2.0 开源协议2004 年 4 月Spring 1.0 版本正式发布。到目前为止Spring 已经步入到了第 5 个大版本也就是我们常说的 Spring 5。
Spring 的狭义和广义
在不同的语境中Spring 所代表的含义是不同的。下面我们就分别从“广义”和“狭义”两个角度对 Spring 进行介绍。
广义的 SpringSpring 技术栈
广义上的 Spring 泛指以 Spring Framework 为核心的 Spring 技术栈。
经过十多年的发展Spring 已经不再是一个单纯的应用框架而是逐渐发展成为一个由多个不同子项目模块组成的成熟技术例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等其中 Spring Framework 是其他子项目的基础。
这些子项目涵盖了从企业级应用开发到云计算等各方面的内容能够帮助开发人员解决软件发展过程中不断产生的各种实际问题给开发人员带来了更好的开发体验。
项目名称描述Spring DataSpring 提供的数据访问模块对 JDBC 和 ORM 提供了很好的支持。通过它开发人员可以使用一种相对统一的方式来访问位于不同类型数据库中的数据。Spring Batch一款专门针对企业级系统中的日常批处理任务的轻量级框架能够帮助开发人员方便的开发出健壮、高效的批处理应用程序。Spring Security前身为 Acegi是 Spring 中较成熟的子模块之一。它是一款可以定制化的身份验证和访问控制框架。Spring Mobile是对 Spring MVC 的扩展用来简化移动端 Web 应用的开发。Spring Boot是 Spring 团队提供的全新框架它为 Spring 以及第三方库一些开箱即用的配置可以简化 Spring 应用的搭建及开发过程。Spring Cloud一款基于 Spring Boot 实现的微服务框架。它并不是某一门技术而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来并通过 Spring Boot 的思想进行再封装屏蔽调其中复杂的配置和实现原理最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。
狭义的 SpringSpring Framework
狭义的 Spring 特指 Spring Framework通常我们将它称为 Spring 框架。
Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案它是 Spring 技术栈的核心和基础是为了解决企业级应用开发的复杂性而创建的。
Spring 有两个核心部分 IoC 和 AOP。
核心描述IOCInverse of Control 的简写译为“控制反转”指把创建对象过程交给 Spring 进行管理。AOPAspect Oriented Programming 的简写译为“面向切面编程”。 AOP 用来封装多个类的公共行为将那些与业务无关却为业务模块所共同调用的逻辑封装起来减少系统的重复代码降低模块间的耦合度。另外AOP 还解决一些系统层面上的问题比如日志、事务、权限等。
Spring 是一种基于 Bean 的编程技术它深刻地改变着 Java 开发世界。Spring 使用简单、基本的 Java Bean 来完成以前只有 EJB 才能完成的工作使得很多复杂的代码变得优雅和简洁避免了 EJB 臃肿、低效的开发模式极大的方便项目的后期维护、升级和扩展。
在实际开发中服务器端应用程序通常采用三层体系架构分别为表现层web、业务逻辑层service、持久层dao。
Spring 致力于 Java EE 应用各层的解决方案对每一层都提供了技术支持。
在表现层提供了对 Spring MVC、Struts2 等框架的整合在业务逻辑层提供了管理事务和记录日志的功能在持久层还可以整合 MyBatis、Hibernate 和 JdbcTemplate 等技术对数据库进行访问。
这充分地体现了 Spring 是一个全面的解决方案对于那些已经有较好解决方案的领域Spring 绝不做重复的事情。
从设计上看Spring 框架给予了 Java 程序员更高的自由度对业界的常见问题也提供了良好的解决方案因此在开源社区受到了广泛的欢迎并且被大部分公司作为 Java 项目开发的首选框架。
Spring Framework 的特点
Spring 框架具有以下几个特点
方便解耦简化开发
Spring 就是一个大工厂可以将所有对象的创建和依赖关系的维护交给 Spring 管理。
方便集成各种优秀框架
Spring 不排斥各种优秀的开源框架其内部提供了对各种优秀框架如 Struts2、Hibernate、MyBatis 等的直接支持。
降低 Java EE API 的使用难度
Spring 对 Java EE 开发中非常难用的一些 APIJDBC、JavaMail、远程调用等都提供了封装使这些 API 应用的难度大大降低。
方便程序的测试
Spring 支持 JUnit4可以通过注解方便地测试 Spring 程序。
AOP 编程的支持
Spring 提供面向切面编程可以方便地实现对程序进行权限拦截和运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理而无须手动编程。
黑马程序员新版Spring零基础入门到精通一套搞定spring全套视频教程含实战源码