Java 项目教程《尚庭公寓》,单体架构项目,从开发到部署
Java 项目教程《尚庭公寓》Java项目从开发到部署
一、参考资料
【Java项目教程《尚庭公寓》java项目从开发到部署,适合新手其含金量高的Java项目实战】 https://www.bilibili.com/video/BV1At421K7gP/?share_source=copy_web&vd_source=855891859b2dc554eace9de3f28b4528
尚庭公寓项目 Gitee 地址 https://gitee.com/yangjunbo-jetli/shangting-apartment.git
二、笔记总结
1、课程简介
项目介绍



前期准备
1、安装 MySQL
2、初始化数据库
3、安装 maven 配置阿里云镜像仓库
4、安装 JDK 17
5、安装 IDEA
2、idea 创建项目









3、父工程添加版本管理依赖

<!-- 继承Spring Boot父项目 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><!-- 注意:直接替换pom文件中原有的properties --><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mybatis-plus.version>3.5.3.1</mybatis-plus.version><swagger.version>2.9.2</swagger.version><jwt.version>0.11.2</jwt.version><easycaptcha.version>1.6.2</easycaptcha.version><minio.version>8.2.0</minio.version><knife4j.version>4.1.0</knife4j.version><aliyun.sms.version>2.0.23</aliyun.sms.version></properties><!--配置dependencyManagement统一管理依赖版本--><dependencyManagement><dependencies><!--mybatis-plus--><!--官方文档:https://baomidou.com/pages/bab2db/ --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><!--knife4j文档--><!--官方文档:https://doc.xiaominfo.com/docs/quick-start --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency><!--JWT登录认证相关--><!--官方文档:https://github.com/jwtk/jjwt#install-jdk-maven --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><version>${jwt.version}</version></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-impl</artifactId><scope>runtime</scope><version>${jwt.version}</version></dependency><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-jackson</artifactId><scope>runtime</scope><version>${jwt.version}</version></dependency><!--图形验证码--><!--官方文档:https://gitee.com/ele-admin/EasyCaptcha --><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>${easycaptcha.version}</version></dependency><!--对象存储,用于存储图像等非结构化数据--><!--官方文档:https://min.io/docs/minio/linux/developers/minio-drivers.html?ref=docs#java-sdk --><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>${minio.version}</version></dependency><!--阿里云短信客户端,用于发送短信验证码--><!--官方文档:https://help.aliyun.com/document_detail/215759.html?spm=a2c4g.215759.0.0.49f32807f4Yc0y --><dependency><groupId>com.aliyun</groupId><artifactId>dysmsapi20170525</artifactId><version>${aliyun.sms.version}</version></dependency></dependencies></dependencyManagement>4、web_admin 模块引入 web 依赖
<!--包含spring web相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--包含spring test相关依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring Boot Maven插件,用于打包可执行的JAR文件 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>5、web_admin 模块创建 yml 配置文件,创建启动类
在web_admin模块的src/main/resources目录下创建application.yml配置文件,内容如下:
server: port: 8080 在web_admin模块下创建com.yangjunbo.lease.AdminWebApplication类,内容如下:
@SpringBootApplication public class AdminWebApplication { public static void main(String[] args) { SpringApplication.run(AdminWebApplication.class, args); } } 6、引入 Mybatis-Plus

在common模块的pom.xml文件中增加如下内容:
<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!--mysql驱动--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId></dependency>在model模块的pom.xml文件中增加如下内容:
<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency>在web_admin模块的application.yml文件增加如下内容:
spring:datasource:type: com.zaxxer.hikari.HikariDataSource url: jdbc:mysql://<hostname>:<port>/<database>?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=GMT%2b8username: <username>password: <password>hikari:connection-test-query: SELECT 1 # 自动检测连接connection-timeout:60000#数据库连接超时时间,默认30秒idle-timeout:500000#空闲连接存活最大时间,默认600000(10分钟)max-lifetime:540000#此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟maximum-pool-size:12#连接池最大连接数,默认是10minimum-idle:10#最小空闲连接数量pool-name: SPHHikariPool # 连接池名称#用于打印框架生成的sql语句,便于调试mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 在common模块下创建com.yangjunbo.lease.common.mybatisplus.MybatisPlusConfiguration类,内容如下:
@Configuration@MapperScan("com.atguigu.lease.web.*.mapper")publicclassMybatisPlusConfiguration{}7、引入 Knife4j

在web模块的pom.xml文件添加如下内容
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId></dependency>在model模块的pom.xml文件添加上述内容
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId></dependency>在web-admin模块下创建com.yangjunbo.lease.web.admin.custom.config.Knife4jConfiguration类,内容如下:
@ConfigurationpublicclassKnife4jConfiguration{@BeanpublicOpenAPIcustomOpenAPI(){returnnewOpenAPI().info(newInfo().title("后台管理系统API").version("1.0").description("后台管理系统API"));}@BeanpublicGroupedOpenApisystemAPI(){returnGroupedOpenApi.builder().group("系统信息管理").pathsToMatch("/admin/system/**").build();}@BeanpublicGroupedOpenApiloginAPI(){returnGroupedOpenApi.builder().group("后台登录管理").pathsToMatch("/admin/login/**","/admin/info").build();}@BeanpublicGroupedOpenApiapartmentAPI(){returnGroupedOpenApi.builder().group("公寓信息管理").pathsToMatch("/admin/apartment/**","/admin/room/**","/admin/label/**","/admin/facility/**","/admin/fee/**","/admin/attr/**","/admin/payment/**","/admin/region/**","/admin/term/**","/admin/file/**").build();}@BeanpublicGroupedOpenApileaseAPI(){returnGroupedOpenApi.builder().group("租赁信息管理").pathsToMatch("/admin/appointment/**","/admin/agreement/**").build();}@BeanpublicGroupedOpenApiuserAPI(){returnGroupedOpenApi.builder().group("平台用户管理").pathsToMatch("/admin/user/**").build();}}8、导入基础代码,使用一些逆向工具自动生成基础代码(例如实体类、mapper、service等),在使用Mybatis-Plus作为存储层框架时,推荐使用IDEA中的[Mybatis X]插件。
- 先把项目中的包名 com.yangjunbo 改成 com.atguigu,然后使用课件中提供到生成好的基础代码,继续开发。
- 如何使用插件生成基础代码,后续再研究,先继续往下学习。
- 课件下载地址,免费视频及资料下载地址:https://pan.baidu.com/s/1PhTeMkX5vOg0ZRcw0abjCw?pwd=yyds 提取码:yyds
9、导入接口定义代码
导入课件中提供的接口相关代码




10、支付方式查询列表


11、保存或更新支付方式




12、删除支付方式

13、租期管理

14、标签查询列表

15、自定义 converter


16、自定义 converterFactory



17、EnumbValue 和 JsonValue 注解


18、标签保存更新删除


19、配套管理

20、基本属性概述

21、保存或更新属性名称属性值

22、基本属性查询列表














23、基本属性删除

24、公寓管理杂费


25、公寓管理地区信息

26、上传图片概述


27、配置 MinioClient










28、上传图片接口实现












29、上传图片异常处理

30、Spring 全局异常处理





31、公寓信息概述

32、公寓信息保存或更新定义

33、公寓信息保存或更新实现



34、公寓信息分页查询概述

35、公寓信息分页查询实现







36、公寓信息详情查询定义

37、公寓信息详情查询实现





38、公寓信息删除实现

39、公寓信息删除完善





40、公寓信息剩余接口


41、房间信息概述

42、房间信息测试

43、看房预约修改状态

44、看房预约分页查询



45、时间格式时区






46、租约概述

47、租约保存或更新

48、租约剩余接口

49、租约定时任务



50、用户管理


51、岗位管理

52、用户信息概述

53、用户信息分页查询

54、根据 ID 查询用户信息


55、用户信息保存或更新




56、用户信息剩余接口

57、租约信息分页查询
这个应该是跟着第 46 节后面
58、登录管理认证方案






59、JWT 概述





60、登录流程


61、获取验证码准备工作




62、获取验证码实现






63、登录接口上

64、登录接口下








65、登录管理拦截器







66、查询登录用户信息






67、前后端联调





68、移动端项目初始化


69、登录管理交互流程

70、获取短信验证码上













71、获取短信验证码下


72、注册和登录


73、获取个人信息

74、找房、地区、支付方式接口

75、分页查询房间列表










76、找房剩余接口

77、查询浏览历史接口

78、保存浏览历史接口



79、看房预约接口

80、租约管理接口

81、前后端联调

82、缓存优化






83、部署方案



84、Nginx 快速入门概述






85、Nginx 快速入门案例实操






86、配置域名映射

87、部署后端项目





88、部署前端项目






