从 Spring 到 Spring 全家桶,Java 开发行业的标准

从 Spring 到 Spring 全家桶java面试题

作为一名资深 Java 开发者,与 Spring 打了很多年交道了,真心被这个框架所折服,不光是我,任何一个 Java 开发者都应该有这样的体会

毋庸置疑,Spring 框架目前已经成为 Java 开发行业的标准,Spring 的官方理念也是霸气十足:the source for modern java,意为 Spring 是现代 Java 开发的源头。

只要是做 Java 开发的,一定或多或少会接触到 Spring,无论是传统企业还是互联网公司的招聘需求上一定会重点要求具备使用 Spring 框架进行开发的能力。

Spring 框架从 2002 年诞生至今经过十多年的发展,已经从最初的取代 EJB 这样一个单一功能发展成为一套完整的生态体系,涉及到现代软件开发的各个方面。

核心模块有哪些?

作为开发者并不需要掌握 Spring 的所有模块,但是 Spring Framework、Spring Boot、Spring Cloud 这三大模块是所有 Java 开发者必须要掌握的。

  • Spring Framework 是整个 Spring 生态的基础,各个模块都是基于 Spring Framework 衍生出来的。
  • Spring Boot 是一个快速开发框架,让开发者可以迅速搭建一套基于 Spring 的应用程序,并且将常用的 Spring 模块以及第三方模块,如 MyBatis、Hibernate 等都做了很好的集成,只需要简单的配置即可使用,不需要任何的 XML 配置文件,真正做到了开箱即用,同时默认支持 JSON 格式的数据,使用 Spring Boot 进行前后端分离开发也非常便捷。

扫描二维码关注公众号,回复: 8679327 查看本文章
  • Spring Cloud 是一套整合了分布式应用常用模块的框架,使得开发者可以快速实现微服务应用。作为目前非常热门的技术,有关微服务的话题总是在各种场景下被大家讨论,企业的招聘信息中也越来越多地出现对于微服务架构能力的要求。

确实,作为当今互联网时代最先进的业务架构解决方案,微服务发展非常迅速,关注点不仅仅放在开发层面,更多的是开发运维逐步一体的思路。

有些读者可能会认为,我现在就是一个初级程序员,把业务逻辑代码写好就可以了,不需要关心架构层面的东西。这种想法过于片面了,不论你现在处于什么阶段,架构方面的东西早晚都要接触,打个比方,当搬砖对你来说已经驾轻就熟了,这时就需要去思考怎么设计房子,也就是从 CRUD 业务操作到软件设计架构的进阶。

怎样提高自己的软件架构能力呢?首先你要具备扎实的基础知识,第二要有足够的项目经验,第三要视野开阔,技术领域的涉猎面要广。整个学习过程周期是比较长的,需要通过反复的实践,发现问题,解决问题来逐步完善你对于架构的理解,需要沉淀才能到达一定高度,很多之前不理解的东西自然就理解了,因此,从长远角度来看,即使你目前只是一个初级开发者,学习微服务也是非常有必要的。

微服务架构的落地框架有很多,对于 Java 开发者而言,当 Spring 框架已经成为事实上的行业标准时,Spring Cloud 作为 Spring 全家桶的重要一员,自然就是大家的首选,通过横向对比也可以得出结论,Spring Cloud 确实是微服务架构中一个十分优越的解决方案。

初学者的困惑

毫无疑问,Spring 全家桶是当前非常流行的主流框架,也是 Java 开发者的必备技能,无论你是初级菜鸟还是有一定经验的老鸟,都应该好好学习 Spring 全家桶的使用。

但遗憾的是目前市面上有关于 Spring 全家桶详细全面且实用的教程比较少,尤其对于初学者来讲,学习成本依旧很高,主要有以下两方面因素。

(1)目前市面上确实有一些不错的 Spring 课程,但都是分模块讲的,比如只讲 Spring MVC、或只讲 Spring Boot、亦或只讲 Spring Cloud,并没有一个集大成者的系统性课程来帮助初学者一次性搞定所有核心模块,这对初学者来讲是很不利的。要想学完全套 Spring 技术栈,需要同时购买好几个课程,这样成本会比较高,我说的并不是经济成本,而是学习成本,为什么呢?因为不同作者的写作风格是大相径庭的,你在学习 Spring Boot 的时候是按照当前作者的风格进行的,那当学习 Spring Cloud 时又是另外一种风格,在不同类型的教学风格中来回切换思路对于初学者来说不是一件轻松的事儿。

(2)很多课程都侧重于理论讲解,缺乏相应的实战案例,这对于初学者来讲也是挺痛苦的,看似学了很多,真正需要写代码时又不知如何下手,完全没有思路,学了一堆东西却不知道如何应用,那不就背离了我们最初的学习目的了吗?我们学技术就是为了实际应用,提高自己的竞争力,去争取更优质的资源。

认识一下即将要学习的全家桶成员

Spring Frameworks

Spring Framework 就是我们通常所说的 Spring 框架,它是一个软件设计架构层面的框架,为基于 Java 的企业级应用程序提供了一套标准流程和配置模型,可部署在任何类型的平台上。Spring 优势在于为开发者提供了应用级别的基础结构支持,实现应用层面的解耦合,允许开发者自主选择相关组件,开发者只需专注于业务逻辑的开发,不需要关注特定的部署环境。

Spring Web MVC

Spring Web MVC(官方名称)就是我们通常所说的 Spring MVC,它是 Spring Framework 中的一个模块,是 Spring Framework 在 Web 领域实现 MVC 设计模式的具体方案,主要是基于 DispatcherServer 的前端路由处理和 ViewResolver 视图解析器来简化开发者的工作效率。

Spring Boots

Spring Boot 是目前 Spring 全家桶系列中最流行的一个产品,在 Spring 官网的介绍排在第一位,可见对其重视程度,Spring 官方对 Spring Boot 的描述是“build anything”,翻译过来是构建任何事物,这样一个非常简单的描述将 Spring Boot 的特点展现的淋漓尽致,即通过 Spring Boot 可以快速构建一个基于 Spring 的独立生存级别的应用程序,开发者直接运行程序即可,无需处理各种繁琐的配置文件。简单理解,Spring Boot 就是为了让开发者快速启动和运行 Spring 应用程序而设计的。

Spring Cloud

Spring 官方对 Spring Cloud 的描述是“coordinate anything”,翻译过来是协调任何事物,通过这个描述可以明确 Spring Cloud 并不是为了实现某个业务模块而存在的,它是一个集大成者,将分布式系统开发中常用的模块进行整合,如服务注册、服务发现、配置管理、熔断器、控制总线等,基于 Spring Boot 形成一套框架体系,开箱即用,使得开发者可以快速实现分布式、微服务应用。

Spring Data

Spring Data 是 Spring 提供的持久层产品,主要功能是为应用程序中的数据访问提供统一的开发模型,同时保留不同数据存储的特殊性,并且这套开发模式是基于 Spring 的。根据不同类型的数据存储类型又可分为 Spring Data JDBC、Spring Data JPA、Spring Data Redis、Spring Data MongoDB 等,适用于关系型数据库和非关系型数据库。

Spring Security

Spring Security 是 Spring 提供的一个功能强大的安全框架,为 Java 应用程序提供授权功能,通过定制身份验证来实现对于访问权限的控制,Spring Security 的特点在于扩展性好,可以根据具体的业务需求来实现定制验证服务。

发布了61 篇原创文章 · 获赞 17 · 访问量 1412

猜你喜欢

转载自blog.csdn.net/cxytony/article/details/103697938