前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >后端必读《Spring Boot实战》,企业级真实应用案例

后端必读《Spring Boot实战》,企业级真实应用案例

作者头像
TechFlow-承志
发布2022-08-26 15:46:43
5140
发布2022-08-26 15:46:43
举报
文章被收录于专栏:TechFlow

作者 | 梁唐

大家好,我是梁唐。

又到了周日我们每周一次的送书环节,之前几周送了很多算法相关的书籍。其实关注的小伙伴当中也有不少是从事开发工作的,所以今天给从事开发以及想要从事开发的小伙伴选了这一本《Spring boot实战》。

说到互联网公司的技术,一定离不开前后端,而说到后端呢,又离不开Java。而说到Java,则又离不开Spring。所以可想而知,Spring家族对于开发工程师来说有多么重要。

估计很多还在上学的小伙伴可能是第一次听说Spring这个词,会觉得很奇怪,Java我知道,但Spring这个东西究竟是干嘛的,真的有这么重要吗?

这里呢,我们来做一个简单的科普,让大家感受一下。

我们用Java写一个几千行代码不使用任何框架的简单项目非常方便,毕竟用到的类和接口就那么些,背都背得下来。但是当这个项目一旦庞大,大到数万行代码甚至是数十万行代码之后,就会有很多问题产生。

其中最大的问题是系统的耦合,举个最简单的例子。比如说某天你和另外一个同事接到一个需求,你们要一起开发一个功能。这个功能比较复杂,你们商量了一下决定把这个功能拆成两个部分,他做前面数据准备的部分,你做后续数据处理加工的部分。

由于你们是共同开发的,你需要依赖他的接口,所以为了方便,你决定写一个Mock的接口,返回一些人造的假数据,等他开发完了之后再替换。

代码语言:javascript
复制
public class SampleController {
    private FunctionService service = new MockService();

    @RequestMapping("/function")
    public String welcome() {
     return service.getResult();
    }
}

当你开发测试完成之后,你同事也完成了他的部分。那么你剩下要做的就是要把代码当中用到的所有MockService替换成正式的Service。你看了一眼,一共写了好几千行代码,好几十处地方需要修改。要只是改名字还好办,如果初始化的逻辑也不同的话,就会非常麻烦。

这里面最大的问题就是如果使用传统的new的方式创建实例,会导致实例的使用方也需要关心实例的创建过程。问题是在公司里尤其是大公司里,服务的开发和使用方往往不是一拨人。这种耦合很多时候会带来问题和麻烦。

正确的做法是什么呢?正确的做法是使用方不关心实例的创建过程,直接把现成的实例拿来用就行。至于这个实例是怎么来的,当中又经历了什么,使用方统统不用理会。

这种思想叫做控制翻转,也就是说不再由使用方来控制实例的生成。Spring框架的主要功能就是这个,Spring框架会创建一个容器,也就是保存实例的地方。所有注册了Spring的服务,它们的实例都会交给Spring管理。开发者在使用容器中的实例的时候,只需要通过配置就可以从Spring容器中获得已经初始化好的实例,也就解除了其中的耦合。

当我们需要修改使用的实例的时候,如果使用new的方式,我们需要把每一处地方都人工修改过来。而通过Spring框架,我们只需要修改配置即可。

比如刚才的代码,如果使用Spring框架写出来会是这个样子。

代码语言:javascript
复制
public class SampleController {
    @Autowired
    private FunctionService service;

    @RequestMapping("/function")
    public String welcome() {
     return service.getResult();
    }
}

我们可以注意到FuncService这个类我们并没有给它new一个实例,而只是加上了一个@Autowired的注解。这个注解就表明了这个类会通过Spring容器获取实例,我们在代码当中只需要直接使用即可。

在后端当中系统的耦合非常非常见,也正因此Spring框架诞生之后大行其道,再加上它本身拓展性很强,使得它在众多领域有了应用,比如Web领域的Spring MVC以及对hibernate和ibatis的集成等等。但应用多了之后,也导致了一些问题,比如配置文件过多过于复杂。正因此Spring社区对庞大的Spring家族进行了简化,推出了Spring Boot。

Spring Boot它其实是一个基于Spring的快速开发整合包,当中整合了Spring MVC、Spring Security等多种功能,但门槛要低得多。也正因此,它成了当今主流的后端框架之一。

但像是Spring Boot这样的框架,它的学习和入门往往是一个问题,毕竟很多概念和思路偏理论,并且往往需要大规模项目的场景,并不是我们看一段代码或者是描述就可以领会得到的,一定要结合项目才能有深入的理解。这也是正是我选了这本书的原因,这本书当中有大量实践性的项目,我们可以动过亲身实践获得更加深刻的体验。

本书的章节按照“基础实践、源码分析、项目开发”三个步骤展开,知识结构合理。

首先,从Spring Boot技术栈简介和基础环境搭建讲起,有多个章节涉及Spring Boot技术栈的相关知识。

其次,将理论结合源码讲解,由Spring Boot的基础使用讲到Spring Boot的源码解读,包括Spring Boot整合Thymeleaf制作页面、Spring Boot整合MyBatis操作数据库、Spring Boot启动流程的源码分析、Spring Boot自动配置流程讲解等。

最后,讲解商城项目的开发实战,主要包括商城后台管理系统的开发和商城端的功能开发。在实践过程中将对项目功能进行拆分,使用Spring Boot分别实现各个独立的功能点,比如图片上传功能、分页功能、登录功能、验证码功能等,并整合多个独立的基础功能到一个完整的功能模块中,最终完成各个功能模块的功能和交互,开发出一个完整的商城系统。

一个可以实操练手的完整项目,再配备上详细的技术讲解手册,是提高开发人员技术水平最高效的方式。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档