立足于核心技术的平台研发

聊聊Java领域的spring框架技术

有趣的是,大约在2007年,笔者同小马哥一样当时还是一名在校大学生,在省图书馆和学校图书馆经常看一些计算机专业的书籍,这其中包括Export One-on-One J2EE Development without EJB,作者是Rod Johnson,也就是Spring Framework 的作者之一。当时spring框架还并不流行,但人们已经看到了其高明之处,多数人认为EJB实在是太重了,以至于包括我在内的许多人对EJB编程事实上是不了了之的。

Spring Framework的成功无疑是颠覆了传统J2EE的开发模式,让广大企业级Java开发者们看到了春天。这种颠覆依赖于两种新概念的提出,那就是你我耳熟能详的俩技术:IoC(Inversion of Control,控制反转)和 DI(Dependency Inject,依赖注入)。不过,如果你研究过Java EE标准,会发现Spring Framework也是一种重复发明的轮子。在Java EE技术体系中,IoC的实现方式为JNDI(Java Naming and Directory Interface,Java命名和目录接口),而DI是EJB容器注入。(EJB容器就是tomcat、Jboss、jetty、netty等具体实现)

Spring Framework在很长一段历史时期,都是作为集成层存在的,也就是框架。彼时,WEB前端表示层盛行Struts、JSF等,模板盛行JSP、Velocity、freeMark等,Hibernate、iBatis(后来改名叫MyBatis的)是ORM的杰出代表。

Spring Framework在当时有很多优点,比如对事务的统一管理,统一了数据库事务和分布式事务,实现了事务(Transaction)抽象,利用AOP(面向切面编程)技术使得事务编程极简化。而真正让Spring Framework发展到顶峰的成就是Spring Web MVC,框架作者对Java EE技术体系的领悟到达了“炉火纯青”的地步,框架具备简化抽象的能力。

然而最近5年以内,Spring Web MVC框架逐渐淡出人们的视线,Spring Boot取而代之,这改变了Spring Framework甚至是Spring整体技术体系的现状。首先带来的改变是,Spring Framework终于“摆脱”了Java EE容器,通过“内嵌”EJB容器的方式实现了。

spring家族能力

在如今的Java程序员眼中,Java EE最好的技术是Spring Boot。它有如下特性:

创建独立的Spring 应用;

直接嵌入Tomcat、Jetty或Undertow等Web容器(不需要部署WAR文件);

提供固化的“starter”依赖,简化构建配置;

当条件满足时自动地装配Spring或第三方类库;

提供运维(Production-Ready)特性,如指标信息(Metrics)、健康检查及外部化配置;

绝无代码生成,并且不需要XML配置。

Spring Boot 1.x并没有迎来太多青睐,而Spring Boot 2.0不一样,基于Spring Framework 5.0开发,采用模块化设计,依赖于Apache Maven管理模块类库。最低jdk版本要求为Java 8。也正是Spring Boot的流行以及InteliJ IDEA对Maven的良好支持使得IDEA成为当下最香的Java EE开发工具。

Spring Boot应用直接或间接地使用SpringApplication API引导应用,其中又结合嵌入式Web容器,对外提供HTTP服务。因此Spring Boot应用分为web应用和非web应用,非web应用主要是服务提供、任务调度、消息处理等,web应用主要包括传统servlet、Spring Web MVC和Reactive Web(Spring Boot 2.0引入了Reactive Web容器实现——Spring 5.0 WebFlux)。嵌入式容器的应用,让Spring Framework独立自主起来,这应该归功于容器的嵌入式支持和Spring Boot研发中心对嵌入的处理。

Spring技术体系辛勤耕耘数十载,在Java EE体系上书写了辉煌的一笔,而这一切不知应该说是Spring的成功,还是Java EE的成功,又或者说是技术界的成功(所有开发语言都一脉相承)?技术的发展,意味着生产力的提高,君不见时下盛行的互联网产业缘起于编程之技。

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔科技
转载请注明转自《聊聊Java领域的spring框架技术
本文地址:https://www.zhiletu.com/archives-9973.html

赞赏

微信赞赏支付宝赞赏

上一篇
下一篇

相关文章

在线留言

*

*