[包学包会-项目步骤全程记录]SpringBoot前后端分离
看完这个系列可以做出来一个+layui的前后端分离项目,喜欢可以点波关注,持续记录更新,有问题可以留言在下方看到都会回复,项目的问题可以跟我交流 技术架构
软件后端开发工具:IDEA 2018.1
Web容器: 8.5
项目管理工具:.6
后端技术: 2.3.3 + -Plus 3.3 + JWT(框架)
前端技术: Layui 等
主框架: 架构采用 + Layui 前后端分离技术实现
功能概述
房屋租赁系统主要包含
户主信息管理
租客信息管理
房屋信息管理
公告信息管理
管理员管理等
正式开始项目 一、项目数据库设计
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 2021/6/16 18:57:06 */
/*==============================================================*/drop table if exists contract;drop table if exists customer;drop table if exists dept;drop table if exists houses;drop table if exists lookhouse;drop table if exists lookhouse2;drop table if exists menu;drop table if exists owner;drop table if exists rentals;drop table if exists rentinfo;drop table if exists repair;drop table if exists role;drop table if exists role_menu;drop table if exists user;drop table if exists user_role;/*==============================================================*/
/* Table: contract */
/*==============================================================*/
create table contract
(id int(10) not null auto_increment,customer_id int(10),houses_id int(10),qzrq datetime,kfrq datetime comment '0 代表女1 代表男',tzrq datetime,money double(5,2),paymoney varchar(200),create_time datetime,djr varchar(20),update_time datetime,xgr varchar(20),rent_id int(10),primary key (id)
);alter table contract comment '合同信息表';/*==============================================================*/
/* Table: customer */
/*==============================================================*/
create table customer
(id int not null auto_increment,identity varchar(20),custname varchar(20),password varchar(20),sex varchar(20) comment '0 代表女1 代表男',address varchar(120),phone varchar(20),career varchar(20),remarks varchar(200),create_time datetime,djr varchar(20),update_time datetime,xgr varchar(20),primary key (id)
);alter table customer comment '租户信息表';/*==============================================================*/
/* Table: dept */
/*==============================================================*/
create table dept
(id int not null auto_increment,parent_id int(20),name varchar(20),type int(10),sort int(10) comment '0 代表女1 代表男',status int(10),create_time datetime,create_by varchar(20),update_time datetime,primary key (id)
);alter table dept comment '部门信息表';/*==============================================================*/
/* Table: houses */
/*==============================================================*/
create table houses
(id int not null auto_increment,numbers varchar(20),owner_id int(10),address varchar(200),area double(5,2),imgs varchar(200),province varchar(200),city varchar(200),county varchar(200),price double(5,2) comment '0 代表女1 代表男',status int(10),remarks varchar(200),create_time datetime,create_by varchar(20),update_time datetime,primary key (id)
);alter table houses comment '房屋信息管理';/*==============================================================*/
/* Table: lookhouse */
/*==============================================================*/
create table lookhouse
(id int(10) not null auto_increment,houses_id int(10),customer_id int(10),look_date datetime,remarks varchar(200),date datetime,djr varchar(20),update_time datetime,xgr varchar(20),stutas int(2) comment '0 未看房1 已看房',primary key (id)
);alter table lookhouse comment '看房信息表';/*==============================================================*/
/* Table: lookhouse2 */
/*==============================================================*/
create table lookhouse2
(id int(10) not null auto_increment,remarks varchar(200),date datetime,djr varchar(20),primary key (id)
);alter table lookhouse2 comment '看房信息表';/*==============================================================*/
/* Table: menu */
/*==============================================================*/
create table menu
(id int not null auto_increment,parent_id int(10),name varchar(20),type int(10),sort int(10) comment '0 代表女1 代表男',status int(10),url varchar(20),permission varchar(20),icon varchar(20),create_time datetime,create_by varchar(20),update_time datetime,primary key (id)
);alter table menu comment '菜单信息表';/*==============================================================*/
/* Table: owner */
/*==============================================================*/
create table owner
(id int not null auto_increment,identity varchar(20),custname varchar(20),sex varchar(20) comment '0 代表女1 代表男',address varchar(120),phone varchar(20),career varchar(20),remarks varchar(200),create_time datetime,djr varchar(20),primary key (id)
);alter table owner comment '房东信息表';/*==============================================================*/
/* Table: rentals */
/*==============================================================*/
create table rentals
(id int(10) not null auto_increment,houses_id int(10),customer_id int(10),money int(5),address2 varchar(200),ksrq datetime,jzrq datetime,jfr varchar(200),remarks varchar(200),date datetime,djr varchar(20),update_time datetime,xgr varchar(20),primary key (id)
);alter table rentals comment '收租信息表';/*==============================================================*/
/* Table: rentinfo */
/*==============================================================*/
create table rentinfo
(id int(10) not null auto_increment,houses_id int(10),customer_id int(10),contract_id char(10),address char(10),remarks char(10),create_time datetime,djr varchar(20),update_time datetime,xgr varchar(20),status int(2),primary key (id)
);alter table rentinfo comment '租赁信息表';/*==============================================================*/
/* Table: repair */
/*==============================================================*/
create table repair
(id int(10) not null auto_increment,houses_id int(10),customer_id int(10),content varchar(200),address varchar(200),remarks varchar(200),date datetime,djr varchar(20),update_time datetime,xgr varchar(20),status int(2) comment '0 未修复1 已经修',name varchar(20),primary key (id)
);alter table repair comment '报修信息表';/*==============================================================*/
/* Table: role */
/*==============================================================*/
create table role
(id int not null auto_increment,parent_id int(10),name varchar(20),type int(10),sort int(10) comment '0 代表女1 代表男',status int(10),remarks varchar(200),create_time datetime,create_by varchar(20),update_time datetime,primary key (id)
);alter table role comment '角色信息表';/*==============================================================*/
/* Table: role_menu */
/*==============================================================*/
create table role_menu
(id int not null auto_increment,menu_id int(10),role_id int(10),primary key (id)
);alter table role_menu comment '角色菜单关联表';/*==============================================================*/
/* Table: user */
/*==============================================================*/
create table user
(id int not null auto_increment,dept_id int(10),username varchar(20),password varchar(20) comment '0 代表女1 代表男',realname varchar(120),sex varchar(20),tel varchar(20),email varchar(20),avatar varchar(20),job_title varchar(20),status int(10),sort int(10),del_flag int,create_by varchar(20),update_time datetime,create_time datetime,primary key (id)
);alter table user comment '用户信息表';/*==============================================================*/
/* Table: user_role */
/*==============================================================*/
create table user_role
(id int(10) not null auto_increment,user_id int(10),role_id int(10),create_by varchar(20),update_time datetime,primary key (id)
);alter table user_role comment '用户角色关联表';
二、项目搭建
创建新工程
在pom.xml文件中导入依赖和节点
注意注意:
一定要改成这个跟我一样的,不然后期报错会烦死的。。。。
org.apache.commons commons-lang3 3.10 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true mysql mysql-connector-java 8.0.21 com.alibaba druid 1.1.22 org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.2 com.github.pagehelper pagehelper-spring-boot-starter 1.2.10 com.baomidou mybatis-plus-boot-starter 3.3.0 org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine com.alibaba fastjson 1.2.68 org.springframework.boot spring-boot-devtools true io.springfox springfox-swagger-ui 2.10.3 io.springfox springfox-swagger2 2.10.3 com.auth0 java-jwt 3.10.0 io.jsonwebtoken jjwt 0.9.1 org.springframework.boot spring-boot-maven-plugin src/main/java **/*.yml **/*.properties **/*.xml false src/main/resources **/*.yml **/*.properties **/*.xml **/*.html **/*.css **/*.js **/*.* false
导入
在下写个测试类
执行测试,注意要加一段代码 就是因为配置了 的数据组件,但是你没有配置相应的数据源。调试可能不成功
至此搭建完成
三、配置文件
代码如下 数据库用户名密码等根据自己的写
#端口
server.port=8888
#根路径
server.servlet.context-path=/
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/rent?useUnicode=true&&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=285142#数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#mybatisPlus
mybatis-plus.mapper-locations=classpath:com/okyang/dao/*.xml
mybatis-plus.type-aliases-package=com.okyang.model# 热部署
spring.devtools.restart.enabled=true# 时间转化格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 这个是时区,一定要加,否则会默认为格林尼治时间,即少8小时
spring.jackson.time-zone=GMT+8# 打印sql日志
logging.level.com.yanzhen.dao=debug# 驼峰式
mybatis-plus.configuration.map-underscore-to-camel-case=true
四、创建web项目工程
使用layui
下载地址:
这里使用单页版本,页面不能满足所有的需求,需要额外设定特殊
也可以下载修改过的源码在百度云
链接:
提取码:0wb2
五、解决跨域访问问题
问题描述:对于前后端分离的项目来说,如果前端项目与后端项目部署在两个不同的域下,那么势
必会引起跨域问题的出现。针对跨域问题,我们可能第一个想到的解决方案就是jsonp,并
且以前处理跨域问题我基本也是这么处理。但是jsonp方式也同样有不足,不管是对于前端
还是后端来说,写法与我们平常的ajax写法不同,同样后端也需要作出相应的更改。并
且,jsonp方式只能通过get请求方式来传递参数,当然也还有其它的不足之处,
ajax方式以jsonp类型发起跨域请求,其原理跟