项目实践:前后端分离的租房系统
目前主流的前端框架中,有ReactJs、Vue.js、angularjs等,都会使用到ES6的新特性。目前最流行的前端框架Vue、Angular、React都属于SPA开发阶段(阶段四,网页其实是一个应用程序,single-page-application)。
ReactJs是一个用于构建用户界面的JavaScript框架,是Facebook开发的一款Js框架。ReactJs圈内还有一些框架(Flux,Redux,Ant Design React)。
UmiJS是一个可拔插的企业级Rect应用框架,umi 可以简单地理解为 roadhog + 路由,思路类似 next.js/nuxt.js,辅以一套插件机制,目的是通过框架的方式简化 React 开发。
安装过程中,需要用到①node.js(一个基于ChromeV8的引擎的Javascript运行环境,是一个包管理工具包,类似于后端的maven),然后再装②yarn(因为tyarn用的是npm.taobao.org的源,速度快,可以把yarn看作优化了的npm。也可以说用yarn管理npm依赖),然后用tyarn安装③umi。
所以此项目中,使用UmiJS作为React的构建工具。(tyarn安装了umi之后,在项目中也需要用tyarn引入nmi依赖的,然后等等一些操作)
1 | 这个项目 npm run build (项目打包命令)之后,生成的事dist文件夹,而不是build文件夹 |
Apache dubbo是一款高性能的Java RPC框架。对SpringBoot有支持,所以后面项目中会有SpringBoot作为基础框架,使用dubbo。
dubbo支持多种注册中心,推荐使用Zookeeper(即,Zookeeper是dubbo的注册中心实现)。Zookeeper是Apache Hadoop的子项目,是一个树型的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用。
1 | 服务器上启动 |
Percona是MySQl的衍生版本。Percona为MySQL数据库服务器进行了改进,在功能和性能上较MySQl有显著的提升。该版本提升了在高负载情况下的InnoDB的性能,为DBA提供了一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
在本课程项目中,ORM这一层的技术选型,采用Mybatis框架作为持久层框架,原因是Mybatis对SQL语句编写更加的灵活。
MybatisPlus是mybatis的插件(MP),是一个Mybatis的增强工具,以提升开发的效率。
lombok提供了简单的注解形式来帮助简化消除一些必须有但显得很臃肿的java代码,特别是针对pojo,在MybatisPlus中使用lombox。
House Renting
后台服务系统,采用SOA的架构思想(面向服务),使用dubbo作为服务治理框架进行搭建。
增加房源数据
1 | url:http://127.0.0.1:18080/house/resources |
由于前端系统和后台服务系统的端口不同,会导致跨域问题,通过umi提供的反向代理功能解决这个问题。
使用阿里云的OSS存储服务,来存储图片。其中在api那一层(dubbo消费者),实现了该框架,通过访问restful风格的controller来上传图片
Author: Jcwang
Permalink: http://example.com/2022/06/21/%E9%A1%B9%E7%9B%AEHouseRenting/