1 项目简介
1.1 概述
动吧旅游生态系统,应市场高端用户需求,决定开发这样的一套旅游系统,此系统包含旅游电商系统(推荐子系统,广告子系统,评价子系统,商品子系统,订单子系统)等,旅游分销系统(分销商的管理),旅游业务系统(产品研发,计调服务,系统权限管理子系统)等。
1.2 原型分析
基于用户需求,进行原型设计(基于html+css+js进行静态页面实现)。例如系统登陆页面:
系统登陆成功页面(例如starter.html)
菜单展现页面css
本项目应用层基于MVC设计思想,进行分层架构设计,目的是将复杂问题简单化,实现各司其职,各尽所能.而后基于“高内聚,低耦合”的设计思想,再实现各对象之间协同,从而提升系统的可维护性,可扩展性。
其中:
1.开放接口层:可直接封装 Service 方法暴露成 RPC (远程过程调用)接口;也可经过 Web 封装成 http 接口;同时也可进行网关安全控制、流量控制等。
2.终端显示层:负责各个端的模板渲染并显示。当前主要是 thymeleaf 渲染,JS 渲染,移动端展现等。
3.Web请求处理层:主要是对访问控制进行转发,请求参数校验,响应结果处理等
4.Service 层:相对具体的业务逻辑服务层(核心业务,扩展业务)。
5.Manager 层:通用业务处理层,它有以下特征:
1) 对第三方平台封装的层,预处理返回结果及转化异常信息;
2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理;
3) 与 DAO 层交互,对多个 DAO 的组合复用。
6.DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。
7.外部接口或第三方平台:包括其它部门RPC开放接口,基础平台,其它公司的 HTTP 接口
说明:对如上分层中涉及到知识的点,逐步增强。
总之:分层的目的就是将复杂问题进行拆解,而后分而治,进而提升系统的可扩展性以及可维护性。html
总体API应用架构:java
3.1 启动 MySQL 客户端并登录,而后执行
1) set names utf8;
2) source d:/dbpms.sql
说明:假如在 mysql 客户端查询表中数据,能够先执行 set names gbk,不然可能会出
现乱码。还有一点要记住,在拿到任何一个 sql 脚本文件时,不要上来就执行它,要先打开
看一看,检查是否有删除库或删除表的语句,这些语句是否会对你当前数据库中的库和表
有影响 ,假若有必定要通过 leader 审批,才能执行删除等操做.
3.2 建立项目
3.2.1 建立项目 moudlemysql
项目建立之后,将项目 module 中的 src 删除,并打开项目中的 pom 文件,修改 module 为pom 工程,代码以下:web
<packaging>pom</packaging>
在 parent 工程建立后之后,添加相关依赖,pom 文件以下:spring
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cy</groupId> <artifactId>15-dbpms-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <name>15-dbpms-parent</name> <description>Demo project for Spring Boot</description> <packaging>pom</packaging> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.cy</groupId> <artifactId>15-dbpms-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cy</groupId> <artifactId>15-dbpms-common</artifactId> <version>0.0.1-SNAPSHOT</version> <name>15-dbpms-common</name> <description>Demo project for Spring Boot</description> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> </properties> </project>
5.dbpms-admin 工程 pom.xml 文件sql
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.cy</groupId> <artifactId>15-dbpms-parent</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.cy</groupId> <artifactId>15-dbpms-admin</artifactId> <version>0.0.1-SNAPSHOT</version> <name>15-dbpms-admin</name> <description>Demo project for Spring Boot</description> <packaging>jar</packaging> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>com.cy</groupId> <artifactId>15-dbpms-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
3.2.2 修改配置文件
在 application.yml 文件中添加以下配置(server,datasource,mybatis,mvc)数据库
server: port: 80 spring: main: banner-mode: off datasource: url: jdbc:mysql:///dbpms?serverTimezone=GMT%2B8&characterEncoding=utf8 username: root password: root thymeleaf: prefix: classpath:/templates/modules/ suffix: .html cache: false mybatis: mapper-locations: classpath:/mapper/*/*.xml logging: level: com.cy: debug
3.3 首页初始化
3.3.1 定义页面初始资源apache
3.3.2 建立页面 Controller
建立呈现首页页面的 controller 对象。此 controller 会做为项目中全部页面访问的入口。缓存
package com.cy.pj.sys.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("/") @Controller//处理客户端全部页面请求 public class PageController { @RequestMapping("doIndexUI") public String doIndexUI(){ return "starter"; } }
3.3.3 启动项目进行测试
启动 tomcat,在地址栏输入 http://localhost/doIndexUI(地址中的端口号要参考本身tomcat 启动端口)地址进行访问,假如没有问题会呈现以下页面:
页面访问流程分析,以下图所示:
问题分析:
问题分析: