Java单体应用 - 项目实战(后台)

原文地址:http://www.work100.net/training/monolithic-project-iot-cloud-admin.html
更多教程:光束云 - 免费课程

概览

序号 文内章节 视频
1 引言 -
2 项目介绍 -
3 功能概览 -
4 实例源码 -

请参照如上章节导航进行阅读

1.引言

本文继续以 「Java单体应用 - 常用框架 - MyBatis」 章节所使用的案例项目 iot-cloud2 为基础进行讲解。

首先,新建一个 iot-cloud3 的文件夹作为本课案例的项目目录,将 iot-cloud2 项目下的所有文件复制到 iot-cloud3

然后,修改 iot-cloud3/pom.xml 文件,将项目的 artifactId 修改为:

<artifactId>iot-cloud3</artifactId>

同时,修改 iot-cloud3/iot-cloud-dependencies/pom.xml 文件中的 parent.artifacteId 配置节,代码如下:

<parent>
    <groupId>net.work100.training.stage2</groupId>
    <artifactId>iot-cloud3</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

最后,移除 Maven 托管的 iot-cloud2,将 iot-cloud3 交由 Maven 托管。

2.项目介绍

项目 iot-cloud* 旨在构建一个基于 Java单体应用 技术的物联网云平台,实现前后台分离,多租户管理,每个租户拥有独立账号体系。

通过项目实践,我们将 Java单体应用 阶段所学知识进行一下综合应用,在学习过程中请务必保证同步练习,做到熟练使用、充分理解,并将其应用到实际工作当中去,希望大家都有所收获!

3.功能概览

3.1.数据表

群共享中已经为大家准备好了练习用的 SQL,位置: SQL脚本/training-iot-cloud.zip,有需要的同学可以加群获取:

另外,您也可以按照如下说明文档手动构创建表结构。

auth_manager 后台账户表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 user_key varchar 32 N 用户Key 唯一索引
3 user_name varchar 20 N 用户名 -
4 password varchar 256 N 密码 -
5 status int 2 N 状态 0=inactive, 1=active, 2=locked, 3=deleted
6 superuser tinyint 1 N 超级用户 0=否, 1=是
7 roles varchar 100 N 角色 多个角色用逗号,分隔
8 modify_password_time datetime - N 修改密码时间 -
9 created datetime - N 新增时间 -
10 updated datetime - N 修改时间 -

auth_manager_profile 后台账户属性表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 user_key varchar 32 N 用户Key 唯一索引
3 profile_key varchar 50 N 属性Key 唯一索引
4 profile_value varchar 100 N 属性值 -
5 created datetime - N 新增时间 -
6 updated datetime - N 修改时间 -

auth_tenant 租户表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 tenant_code varchar 10 N 租户编码 唯一索引
3 tenant_name varchar 20 N 租户名称 -
4 tenant_desc varchar 256 N 租户描述 -
5 created datetime - N 新增时间 -
6 updated datetime - N 修改时间 -

auth_tenant_profile 租户属性表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 tenant_code varchar 10 N 租户编码 唯一索引
3 profile_key varchar 50 N 属性Key 唯一索引
4 profile_value varchar 100 N 属性值 -
5 created datetime - N 新增时间 -
6 updated datetime - N 修改时间 -

auth_tenant_user 租户账户表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 user_key varchar 32 N 用户Key 唯一索引
3 tenant_code varchar 10 N 租户编码 -
4 user_name varchar 20 N 用户名 -
5 password varchar 256 N 密码 -
6 status int 2 N 状态 0=inactive, 1=active, 2=locked, 3=deleted
7 superuser tinyint 1 N 超级用户 0=否, 1=是
8 roles varchar 100 N 角色 多个角色用逗号,分隔
9 modify_password_time datetime - N 修改密码时间 -
10 created datetime - N 新增时间 -
11 updated datetime - N 修改时间 -

auth_tenant_user_profile 租户账户属性表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 tenant_code varchar 10 N 租户编码 唯一索引
3 profile_key varchar 50 N 属性Key 唯一索引
4 profile_value varchar 100 N 属性值 -
5 created datetime - N 新增时间 -
6 updated datetime - N 修改时间 -

iot_tenant_device 租户设备表

序号 字段名 数据类型 长度 主键 含义 备注
1 id bigint 20 Y 数据标识 自增
2 tenant_code varchar 10 N 租户编码 唯一索引
3 device_code varchar 20 N 租户编码 唯一索引
4 model varchar 20 N 用户名 -
5 status int 2 N 状态 0=inactive, 1=active, 2=locked, 3=deleted
6 created datetime - N 新增时间 -
7 updated datetime - N 修改时间 -

3.2.功能概览

项目分为 后台前台,功能概览如下:

后台

前台

接下来我们将逐步实现 后台 所列相关功能。

4.实例源码

实例源码已经托管到如下地址:



下一篇:后台登录


如果对课程内容感兴趣,可以扫码关注我们的 公众号QQ群,及时关注我们的课程更新


原文地址:https://www.cnblogs.com/liuxiaojun/p/training-monolithic-project-iot-cloud-admin.html

时间: 2024-07-31 20:17:10

Java单体应用 - 项目实战(后台)的相关文章

java设计模式综合项目实战视频教程

java设计模式综合项目实战 视频课程目录如下: 第01节课:本课程整体内容介绍:X-gen系统概况,包括:引入.X-gen项目背景.X-gen的HelloWorld第02节课:X-gen整体介绍,包括:系统整体功能概述.外部主题功能概述.高层结构概览第03节课:配置管理模块的详细功能.功能边界.对外的数据接口第04节课:配置管理模块对外的程序接口.简单实现(先不用设计模式).对外的数据模型第05节课:引入并代码实现简单工厂模式和单例模式第06节课:引入桥接模式,代码实现第一部分第07节课:继续

【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询

在我的上一篇博客<[java]itoo项目实战之hibernate 懒加载优化性能>中,我曾提到过学生数据有2万条,查询数据十分的慢,这是让人很受不了的事情,看着页面进度条一直转着圈圈,那种着急的感觉真的没法形容.最开始考虑着使用lazy 来优化,因为前台框架的原因,lazy 优化并没有起到什么左右,后来就想着有select new map 优化.我先来画画关于查询学生的级联树 这个树的意思就是查询学生的时候它的深度是4级. 在没有优化之前,使用的是hibernate的hql 语句:From

【java】itoo项目实战之优化后具体代码

在我的前一篇博客中<<itoo项目实战之减少IO读写的导入思路>>,我介绍了如何完成减少IO读写的Excel导入,在这里我就把具体的代码实现分享给大家: 我就按照这张图的顺序给大家分享. 检查Excel 数据是否重复的代码: <span style="font-family:Times New Roman;font-size:18px;">// 2.从指定列中寻找重复行 for (int i = 1; i < realRows - 1; i++

JAVA区块链项目实战

课程介绍 全国首套,基于java的区块链实战教程.目的是让更多的java编程者了解区块链,掌握区块链开发.1.区块链理论:以node.js例子区块链原理有深刻理解:2.区块链java实战:深刻理解区块链原理后能用java编写区块链项目. ------第一部分 项目演示 目录------------------------------------------------------------ 1-第一章-01-java区块链项目实战教程前言 2-第一章-02-Java项目三台内网服务器演示 3-

私塾在线java设计模式综合项目实战

内容概述: 绝对独家精品课程,设计模式综合应用的实战案例,学习如何在实际项目中,真正使用设计模式,而不再停留在只是知道设计模式, 但不会使用的尴尬境地:从而帮助大家提高应用设计模式的水平和基本的设计能力. 技术要点: 用一个实际应用,从零开始,采用重构的方式,一步一步教你去应用各个设计模式,并完美的把这些设计模式细致.贴切的组合起来, 构建一个精致的架构,开放.灵活而又非常小巧. 整体课程概览 第一部分:X-gen概况 包括:引入.X-gen项目背景.X-gen的HelloWorld 第二部分:

【java】itoo项目实战之常被忽视的性能优化

Itoo V3.0很快就要结束了,功能上基本上开发完成了,但是放到jboss中部署的时候,使用时感觉特别的慢,如果是数据量多的话,就把慢这个词发挥到了极致.这个慢的问题有大部分是因为基础系统中使用了JPA级联导致的,每次查询的时候,只要有关联的表,都会全部查询出来,一下发出一大版的HQL 语句,看着也是挺吓人的.出来优化JPA级联问题,还可以从代码中下手,从以下的几个方面考虑. (1)减少对象生命周期 对象的生命周期有这么一个计算公式:对象生命周期=销毁时间-创建时间 实际上减少对象生命周期有2

【java】itoo项目实战之hibernate 懒加载优化性能

在做itoo 3.0 的时候,考评系统想要上线,就开始导入数据了,只导入学生2万条数据,但是导入的速度特别的慢,这个慢的原因是因为导入的时候进行了过多的IO操作.但是导入成功之后,查询学生的速度更加慢,因为底层用了hibernate的hql语句进行查询的,学习过hibernate的人都知道,如果hibernate不设置懒加载的话,只有是有关联的数据都会一次性全部都查询出来,我试了试,查询2万条数据,最深的级联查询是有5层,然后发出来的语句是460条,时间大概是10s.然后就考虑使用lazy进行优

【java】itoo项目实战之java Web 中web的作用

在ITOO中,每个war包下的web.xml都是一样的.它的结构如下: itoo中含有多个war包,而且每个war包中web.xml都和上图的结构一样,而且配置内容都是一样的. 在Javaweb 应用中可以包含HTML 文档,Servlet,JSP和相关java类等,为了Servlet容器能够顺利地找到javaWeb 应用中的各个组件,Servlet规范规定,javaWeb应用必须采取固定的目录结构,即每种类型的组件在Web应用中都有固定的存放目录.Servlet规范还规定,javaWeb应用的

【java】itoo项目实战之hibernate 懒载入优化性能

在做itoo 3.0 的时候,考评系统想要上线,就開始导入数据了,仅仅导入学生2万条数据,可是导入的速度特别的慢.这个慢的原因是由于导入的时候进行了过多的IO操作.可是导入成功之后,查询学生的速度更加慢.由于底层用了hibernate的hql语句进行查询的,学习过hibernate的人都知道,假设hibernate不设置懒载入的话,仅仅有是有关联的数据都会一次性所有都查询出来,我试了试.查询2万条数据,最深的级联查询是有5层,然后发出来的语句是460条,时间大概是10s.然后就考虑使用lazy进