前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[从零构建电商项目]从用户注册开始(上)

[从零构建电商项目]从用户注册开始(上)

作者头像
用户2890438
发布2021-03-18 11:16:30
1.2K0
发布2021-03-18 11:16:30
举报

前言

接上一篇《大型网站架构演变》,从本篇开始,将从0到1构建一个单体的电商项目,并以此为基础,从集群到分布式,再到微服务,进行逐步演变。我们先从用户注册入手,从头开始分析,并搭建项目。下面我们开始吧。

前后端分离开发模式

在早期传统的Java Web开发的时候,我们的前端代码(html/css/js)和后端代码(Java)是耦合到一起的,都在一个工程里面,这样导致前后端开发人员在协作时,并不太方便的。另外,这种模式下,web容器(如tomcat)还承担了页面的渲染工作,比如JSP就是由web容器渲染处理成html返回给客户端的,这样的话,实际上一旦网站用户、流量上去后,web容器在这方面压力会很大的。

我们采用前后端分离开发模式的话,那么,前端是一套工程代码,后端是一套工程代码,两者是没有耦合到一起的,是分开部署的。一般,我们会把前端部署到高性能反向代理服务器Nginx上(早期可能是Apache上,静态资源服务器),前端会通过restful api来和后端通信,以JSON这种格式来进行数据传输。这种模式,非常利于前后端开发人员的分工,提高了协作的效率,而且我们只需要维护一套后端代码,可以为多种client提供服务。

Maven构建聚合工程

我们将采用主流的方式,通过Maven来管理项目,并对项目进行分层设计,构建聚合工程。

在Idea中完成maven工程聚合(api->service->mapper->pojo->common):

(聚合之后,别忘记安装,建立依赖关系,也就是install喔~)

数据库建模

我们不用急于编写代码,应该分析清楚业务后,进行数据库设计。一般情况下,我们并不会直接在数据库中进行设计,而是利用一些数据库建模工具,如PowerDesigner、ERWin等,我这里会使用PDMan(开源、国产、漂亮、极简)来进行。

在设置好数据库连接后,我们可以设计这样一张users表。注意到,这里把主键id设置为字符串,而非自增的。是因为在前面一篇文章,我们提及过进行分库分表需要全局唯一id作为主键,因此我们在这里先这么处理,为以后打下伏笔。表设计好了后,我们利用建模工具,同步到mysql中。

这里我们可以发现PDMan有一个非常好用的功能,那就是可以记录每次数据库表结构的变更记录,类似于git的版本管理机制。

Mybatis 数据库逆向生成工具

为了进一步提高效率,当我们的数据库表设计好了之后,我们可以利用MyBatis数据库逆向生成工具来帮助我们自动生成一些文件,比如数据库对应的实体entity,与之对应的mapper.xml,和相应的接口映射类。

然后,我们把自动生成的这些文件copy至项目中即可(需要依赖及配置)。注意MyMapper文件,其实这是一个通用mapper。通俗点说,通用Mapper是对单表的CRUD操作进行了较为详细的实现,使得我们可以按照自己的需求选择通用的方法。

整合SpringBoot

依赖

启动类

配置

小结

到这里,咱们已经讲述了前后端开发模式、Maven构建聚合工程、数据库建模、MyBatis逆向生成工具以及SpringBoot整合等相关话题。朋友们,夜已深了,本文就先到这里吧(详情可以参见,我的公众号:丰哲同学)。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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