版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目3
企业应用架构设计【学习目标】本项目主要学习企业应用架构设计、开发与部署,了解企业应用架构的设计思路,掌握使用Redis缓存用户登录信息、使用RocketMQ分布式消息系统完成高并发秒杀功能、实现系统日志消息采集;了解系统容器化的部署方式,掌握使用Docker镜像制作与部署各个服务,解决系统快速部署的问题。【项目介绍】将项目三的餐厅点餐系统使用企业应用架构的设计思路进行改造升级,基于企业应用架构实践,结合常用的技术框架实现秒杀活动热插拔模块、数据缓存、系统日志消息及系统的容器化部署。【知识结构】任务1.搭建前后端分离架构任务描述前后端分离已成为互联网项目开发的业界标准使用方式,本任务就是搭建前后端分离系统并实现用户管理模块。知识准备1.前后端分离
前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个从程序员成长为系统架构师的必经之路。前后端分离的核心思想是前端HTML页面通过AJAX调用后端的RESTFULAPI接口并使用JSON数据进行交互。2.Web服务器
一般指像Nginx,Apache这类的服务器,一般只能解析静态资源。3.应用服务器
一般指像Tomcat,Jetty,Resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。4.Node.js
Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。Node.js的包管理器npm,是全球最大的开源库生态系统。5.NPMNPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允许用户从NPM服务器下载别人编写的第三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。任务实施步骤1:创建项目后台(1)使用SpringStarterProject创建项目,单击选择“File->New->Project”,在弹出的“NewProject”窗口选择“SrpingBoot->SpringStarterProject”,单击“Next”按钮,结果如图4-1所示:图4-1创建项目-1(2)在“NewSpringStarterProject”窗口,设置Name为“ordersys_bravo”,Group为“com.chinasofti”,JavaVersion为“8”,Package为“com.chinasofti.ordersys”,单击“Next”按钮,结果如图4-2所示:图4-2创建项目-2(3)在“NewSpringStarterProjectDependencies”窗口,单击选择“DeveloperTools->SpringBootDevTools”、“SQL->MyBatisFramework”、“SQL->MySQLDriver”、“Security->SpringSecurity”和“Web->SpringWeb”,单击“Finish”按钮,结果如图4-3所示:图4-3创建项目-3步骤2:修改项目依赖(1)打开pom.xml文件在dependencies中增加commons-lang3和jsonwebtoken依赖:<!--commons-lang3工具类 --><dependency> <groupId>mons</groupId> <artifactId>commons-lang3</artifactId></dependency><!--Token生成与解析--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.0</version></dependency>(2)在dependencies和build之间增加依赖管理配置:<dependencies><!--此处省略--></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><!--此处省略--></build>(3)修改build构建配置:<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.chinasofti.ordersys.OrdersysBravoApplication</mainClass></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>步骤3:进行项目配置(1)双击打开“ordersys_bravo\src\main\resources\application.yml”配置文件,注意文件后缀为yml。增加端口、日志、热编译、数据源、mybatis和token令牌设置,完整配置如下:server:port:8080
#指定打印日志配置logging:level:#定义项目mapper包下的日志打印机别为debugcom.chinasofti.ordersys.mapper:DEBUG
spring:profiles:active:dev#热编译devtools:restart:#需要实时更新的目录additional-paths:resources/**,static/**,templates/**
#数据源datasource:driver-class-name:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://localhost:3306/ordersys-v3?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=UTCusername:rootpassword:rootplatform:mysqlmybatis:#指定实体类存放的包路径type-aliases-package:com.chinasofti.ordersys.model#指定mapper.xml文件的位置为/mybatis-mappers/下的所有xml文件mapper-locations:classpath:/mybatis-mappers/*#转换到驼峰命名configuration:mapUnderscoreToCamelCase:true
#token配置token:#令牌自定义标识header:Authorization#令牌秘钥#secret:abcdefghijklmnopqrstuvwxyzsecret:(OREDERSYS:)_$^11244^%$_(IS:)_@@++--(BAD:)_++++_.sds_(GUY:)#令牌有效期(默认30分钟)expireTime:60(2)在MySql8中创建数据库ordersys-v3,并设置数据库编码为UTF-8并导入提供的ordersys.sql文件。CREATESCHEMA`ordersys-v3`DEFAULTCHARACTERSETutf8;步骤4:引入通用代码引入JAVA项目通用代码,根据提供的项目资源代码复制到当前项目,结果如图4-4所示:图4-4导入项目通用代码导入通用代码的功能介绍见表4-1。表4-1任务1通用代码功能介绍表Constants.java通用常量信息。HttpStatus.java返回状态码。UserConstants.java用户常量信息。(2)“mon.core.lang”包下的唯一识别码基类。类名功能UUID.java提供通用唯一识别码。(3)“mon.core.text”包下的字符及格式转换基类。类名功能CharsetKit.java字符集工具类。Convert.java类型转换器。StrFormatter.java字符串格式化。类名功能(1)“mon.constant”包下的常量信息及状态码基类。(4)“mon.enums”包下的用户状态基类。类名功能UserStatus.java用户状态。(5)“mon.result”包下的响应信息基类。类名功能PageResults.java分页结果集对象。ResponseCode.java响应状态码消息枚举。Results.java响应结果封装对象。(6)“mon.security.filter”包下的权限过滤器基类。类名功能JwtAuthenticationTokenFilter.javatoken过滤器,用于验证token有效性。(7)“mon.security.handle”包下的授权认证失败基类。类名功能AuthenticationEntryPointImpl.java认证失败处理类,用于返回未授权。(8)“mon.security.service”包下的权限服务基类。类名功能SysLoginService.java登录校验服务类。TokenService.javatoken验证处理服务类。UserDetailsServiceImpl.java用户验证处理服务类。(9)“mon.security”包下的权限model基类。类名功能LoginUser.java登录用户身份权限的Model。(10)“com.chinasofti.ordersys.config”包下的项目全局配置类。类名功能ConfigurerAdapter.javaSpringWebMVC配置类。GlobalExceptionHandler.java全局异常控制类,用于拦截所有运行时的全局异常。SecurityConfig.javaSpringSecurity配置类。(11)“com.chinasofti.ordersys.util.http”包下的http工具类。类名功能ServletUtils.javaServlet客户端工具类。(12)“com.chinasofti.ordersys.util.security”包下的权限工具类。类名功能IdUtils.javaID生成器工具类。SecurityUtils.java安全服务工具类。UserHandleUtils用户控制工具类。(13)“com.chinasofti.ordersys.util”包下的字符串处理工具类。类名功能MyStringUtils.java字符串工具类。(14)“com.chinasofti.ordersys.model”包下的用户信息模型类。类名功能UserInfo.java用户信息模型类。(15)“com.chinasofti.ordersys.api.login”包下的用户登录接口类。类名功能LoginController.java用户登录接口类。(16)“com.chinasofti.ordersys.service.login”包下的用户登录服务类。类名功能LoginService.java用户登录服务类。(17)“com.chinasofti.ordersys.mapper”包下的用户登录映射类。类名功能LoginMapper.java用户登录映射类。步骤5:项目前端介绍(1)本项目提供基于vuejs和webpack构建的前端工程化项目“order-sys-front”,开发准备:1)安装node.js和vscode开发环境及工具2)熟悉npm命令3)熟悉vuejs框架及工具链(2)安装项目依赖
使用vscode工具打开项目“order-sys-front”。工具栏“终端->新终端”,在项目路径下输入“npminstall”命令安装项目依赖,结果如图4-5所示:图4-5安全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年深度钻井工程服务协议
- 2024年荒山开发承包协议样本
- 2024年个人消费贷款协议模板指南
- 2024年适用车辆租赁长租协议样式
- 底商租赁协议精简(2024年)
- 2024移动网络运营商服务协议
- 2024商业大楼玻璃安装施工协议
- BOT项目协议编制:2024年细化
- 2024年光纤焊接技术服务协议
- 2024年施工协议附加协议
- T-CIATCM 008-2019 中医药卫生经济信息标准体系表
- 地下车库给排水及管线综合设计要求
- 2022年安全员上岗证继续教育考试答案
- 通信工程拟投入的主要施工设备表
- 快递公司与菜鸟驿站合作协议【六篇】
- 度日如年(关于清末广州十三行历史的小品剧本)
- 燕歌行(并序)课件
- 人民币收付业务培训课件
- 妇女权益的法律保护课件
- 08S305-小型潜水泵选用及安装图集
- 质量部KPI考核指标
评论
0/150
提交评论