Java 杂谈

作为Java工程师,你的Spring用对了吗?

2019-02-14  本文已影响2人  java高级编程中心

毋庸置疑,Spring 早已成为 Java 后端开发事实上的行业标准,无数的公司选择 Spring 作为基础的开发框架,大部分 Java 后端程序员在日常工作中也会接触到 Spring ,在使用的过程中不知道你是否遇到这些问题:

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

在代码之外,看着一堆依赖和配置,总是有些摸不清方向;

看着这么多组件,总是不知道该从何入手;

看着一同入职的小伙伴把框架玩得很溜,总是不明白自己到底哪里没开窍;

从 2002 年误打误撞开始写 Java 后,就把它当做自己的主要工作语言了,一路上踩过不少坑,因此深有感触,还记得前些年 Spring Boot 和 Spring Cloud 还没有出现,我们在开发一个互联网金融相关的项目,大致要求如下:

前端有 PC、HTML5 和 APP,通过接口与后端系统交互,后端再访问核心系统,所有数据存储于 MySQL 中。

整个应用部署在私有云上,应用实例要能根据业务量动态扩容或者缩容,遇到紧急情况时,系统还要能够自动或者通过后台开关手动降级......

一连串的需求如潮水般涌来,要命的是留给我们的时间还特别紧张,当时的内心还是有些小崩溃的,后来平复了一下心情,除了那些基本的功能性需求,还梳理了那些非功能性的点:

需要发布 RESTful Web Services

考虑到系统的吞吐量要求,需要实现读写分离,将大部分数据缓存到 Redis 中

系统是集群化部署的,Web 层的系统可能需要分布式 Session

系统需要有配置开关,最好开关还要实时生效

系统要能实现服务的自动注册与发现,在集群中做到负载均衡

遇到突发流量或者故障,系统要能熔断

为了缩短实时链路,有些不必要的操作可以通过消息来传递

开发、测试、预发布、生产每个环境的配置文件和配置项会有区别,需要独立配置

长长的清单一眼望不到尽头,更要命的是产品经理和老板在提需求时基本不会和你说这些,但在出问题时,没考虑到这些点,锅都是你的,谁让你是专业人士呢。

大厂有丰富的基础设施,能帮助业务实现很多非功能性需求,但如果是小公司,技术积累不多,那就只能靠加班加点堆积代码来实现,没给自己少埋坑,比如把开关做在数据库里,每次判断都 SELECT 一下,流量一大数据库就扛不住了;配置文件一多就乱套了,测试的配置一不小心就带上线了……

直到后面出现了 Spring Boot 和 Spring Cloud,只需引入一些 Starter Dependency,简单修改一些配置文件,再通过很少量的代码就可以实现上述需求,它们可以帮助工程师更好地基于 Spring 及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。

所以,Spring Boot 和 Spring Cloud 已成为 Spring 生态中不可或缺的一环。想成为一名合格的 Java 后端工程师,Spring Framework、Spring Boot、Spring Cloud 这三者必须都牢牢掌握。

很早之前,极客时间的编辑找到我,想让我开设一门关于 Spring 的课程,刚开始我是拒绝的。

在十几年前,我刚接触 Spring 时,国内基本没什么好的材料介绍它,更不要说什么像样的图书课程了,我和朋友们一起在满江红翻译了 Spring Framework 2.0 和 2.5 的文档发布在网上,希望通过完整的中文文档帮助大家更好地了解和使用 Spring。

到了 3.0 时我们就不再组织翻译了,原因是中文世界里已经有很多帮助大家学习 Spring 的东西了,无论是网上的文章还是线下的图书,大家也都已经把使用 Spring 做为工作中的常态了。既然它已如此普遍,那为什么还要再去专门做一门课程呢?

后来我调研了一下,市面上有很多书和教程,但对于很多初学者,在学习 Spring 的时候,难免会遇到这些问题:

官方文档虽然全面,但面对庞杂的知识体系,很多初学者一时不知该从哪里下手;

手册式的书籍内容丰富,但平铺直叙的风格也很难让人快速抓住重点;

网络也有很多的文章可以参考,但要不就是知识点太分散,要不就是在围绕那几个常见的点“炒冷饭”;

有的教程写得也很不错,但只是介绍了某一个框架,在面对一打框架的时候,该怎么把它们结合到一起呢?

除此之外,很少有人会在文章或教程里去讲述框架扩展定制等相关的东西,而我在工作中则经常需要去考虑怎么让框架更好地为业务落地去服务,也希望能把自己的经验传递给更多的工程师。

原理和实战相辅相成是本课程的一大特色,整个学习周期你将跟随我搭建一个线上咖啡馆的实战项目,通过实战把所有零碎的知识点串联起来,通过即学即用的方式,让你把知识点掌握得更牢固,理解得更透彻。

不同于市面上大多数教程,我希望不仅带给你 Spring Framework、Spring Boot 与 Spring Cloud 的实战技巧,更让你了解这些工具背后的关键机制与实现原理,真正做到活学活用。

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

上一篇下一篇

猜你喜欢

热点阅读