你将收获

1、参加面试,面试官认为你具备架构师潜力:对整体系统需求开始到系统上线,整体把控系统架构并独立完成系统的能力。编写的代码质量高,健壮性强,返工少,思考问题全面。

2、面对整体系统需求开始到系统上线,整体解析编写代码的思路,高并发、高可靠、高性能、分布式集群、性能优化能力

3、增加项目经验,可以作为自己简历的实战项目,找到更好的工作,要更高的工资。

适用人群

java新手、java初学者、初级java开发工程师、 中级java开发工程师、 高级java开发工程师

课程介绍

cms-Cloud后台管理系统

 

cms-Cloud 基于Spring Boot、Spring Cloud & Alibaba、OAuth2的前后端分离的后台管理系统内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。

核心技术

前端技术栈 ES6vuevuexvue-routervue-cliaxioselement-ui

后端技术栈 Spring BootSpring Cloud & AlibabaOAuth2

系统需求

JDK >= 1.8

MySQL >= 5.5

Maven >= 3.0

主要特性

1. 完全响应式布局(支持电脑、平板、手机等所有主流设备)

2. 强大的一键生成功能(包括控制器、模型、视图、菜单等)

3. 支持多数据源,简单配置即可实现切换。

4. 支持按钮及数据权限,可自定义部门数据权限。

5. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护

6. 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击

7. Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。

8. 国际化支持,服务端及客户端支持

9. 完善的日志记录体系简单注解即可实现

技术选型

1、系统环境

Java EE 8

Servlet 3.0

Apache Maven 3

2、主框架

Spring Boot 2.2

Spring Cloud Hoxton.SR3

Spring Framework 5.1

Spring Security 5.1

3、持久层

Apache MyBatis 3.4

Alibaba Druid 1.1

4、视图层

Vue 2.6

Axios 0.18

Element UI 2.11

内置功能

(1) 用户管理:用户是系统操作者,该功能主要完成系统用户配置。

(2) 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。

(3) 岗位管理:配置系统用户所属担任职务。

(4) 菜单管理:配置系统菜单,操作权限,按钮权限标识等。

(5) 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。

(6) 字典管理:对系统中经常使用的一些较为固定的数据进行维护。

(7) 参数管理:对系统动态配置常用参数。

(8) 通知公告:系统通知公告信息发布维护。

(9) 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。

(10) 登录日志:系统登录日志记录查询包含登录异常。

(11) 在线用户:当前系统中活跃用户状态监控。

(12) 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。

(13) 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。

(14) 系统接口:根据业务代码自动生成相关的api接口文档。

(15) 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。

(16) 在线构建器:拖动表单元素生成相应的HTML代码。

(17) 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。

 

环境部署

准备工作

JDK >= 1.8 (推荐1.8版本)

Mysql >= 5.5.0 (推荐5.7版本)

Redis >= 3.0

Maven >= 3.0

Node >= 10

nacos >= 1.1.0

sentinel >= 1.6.0

运行系统

因为本项目是前后端分离的,所以需要前后端都启动好,才能进行访问

后端运行

1、导入cmsEclipse,菜单 File -> Import,然后选择 Maven -> Existing Maven Projects,点击 Next> 按钮,选择工作目录,然后点击 Finish 按钮,即可成功导入Eclipse会自动加载Maven依赖包,初次加载会比较慢(根据自身网络情况而定)

2、创建数据库cms-cloud并导入数据脚本cms.sql(必须),quartz.sql(可选)

3、创建数据库cms-config并导入数据脚本cms_config.sql(必须)

4、配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置。

# db mysql

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://localhost:3306/cms-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

db.user=root

db.password=password

5、打开运行基础模块(启动没有先后顺序)

CmsGatewayApplication (网关模块 必须)

CmsAuthApplication (认证模块 必须)

CmsSystemApplication (系统模块 必须)

CmsMonitorApplication (监控中心 可选)

CmsGenApplication (代码生成 可选)

CmsJobApplication (定时任务 可选)

CmsFileApplication (文件服务 可选)

前端运行

# 进入项目目录

cd cms-ui

# 安装依赖

npm install

# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。

npm install --registry=https://registry.npm.taobao.org

 

本地开发 启动项目

npm run dev

打开浏览器,输入:http://localhost:80 (默认账户 admin/admin123)

若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功

提示

前端安装完node后,最好设置下淘宝的镜像源,不建议使用cnpm(可能会出现奇怪的问题)

部署系统

因为本项目是前后端分离的,所以需要前后端都部署好,才能进行访问

后端部署

bin/package.bat 在项目的目录下执行

然后会在项目下生成 target文件夹包含 war 或jar

1、jar部署方式

使用命令行执行:java –jar xxxx.jar 或者执行脚本:bin/run.bat

2、war部署方式

pom.xml packaging修改为war 放入tomcat服务器webapps

提示

SpringBoot去除内嵌tomcat

前端部署

当项目开发完毕,只需要运行一行命令就可以打包你的应用

# 打包正式环境

npm run build:prod

# 打包预发布环境

npm run build:stage

构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。

通常情况下 dist 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 index.html 是后台服务的入口页面。

环境变量

所有测试环境或者正式环境变量的配置都在 .env.development (opens new window)等 .env.xxxx文件中。

它们都会通过 webpack.DefinePlugin 插件注入到全局。

常见问题

如果使用Mac 需要修改application.yml文件路径profile

如果使用Linux 提示表不存在,设置大小写敏感配置在/etc/my.cnf 添加lower_case_table_names=1,重启MYSQL服务

如果提示当前权限不足,无法写入文件请检查profile是否可读可写,或者无法访问此目录

课程目录