学习: 尚硅谷Java项目之尚庭公寓(4)

五、移动端前后端联调

前端服务

后端服务

全部删除,重新上传

minio要开

Cannot read properties of undefined (reading 'Map')

在rentHouseH5中src\config\config.ts改高德地图 key

查找

地区筛选

价格筛选

排序

个人中心

浏览历史

浏览历史图片加载失败

后端返回的图片 URL 是完整的绝对路径:http://113.141.166.99:9000/lease/...

我的预约

我的租约

确认

六、项目优化

使用 Reids 保存缓存数据

common/src/main/java/org/example/lease/common/redis/RedisConfiguration.java

java 复制代码
package org.example.lease.common.redis;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;

@Configuration
public class RedisConfiguration {
    @Bean
    public RedisTemplate<String, Object> stringObjectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(RedisSerializer.string());
        template.setValueSerializer(RedisSerializer.java());
        return template;
    }
}

编写缓存逻辑

web-app

web/web-app/src/main/java/org/example/lease/web/app/service/impl/RoomInfoServiceImpl.java

java 复制代码
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

getDetailById方法下

java 复制代码
 public RoomDetailVo getDetailById(Long id) {
        String key = RedisConstant.APP_ROOM_PREFIX + id;
        RoomDetailVo roomDetailVo = (RoomDetailVo) redisTemplate.opsForValue().get(key);
        //1.查询房间信息
        RoomInfo roomInfo = roomInfoMapper.selectById(id);
          if (roomDetailVo == null) {
            //1.查询房间信息
            RoomInfo roomInfo = roomInfoMapper.selectById(id);
            if (roomInfo == null) {
                return null;
            }
               roomDetailVo = new RoomDetailVo();
        ......

        redisTemplate.opsForValue().set(key, roomDetailVo);
    }

编写删除缓存逻辑

web-admin

web/web-admin/src/main/java/org/example/lease/web/admin/service/impl/RoomInfoServiceImpl.java

java 复制代码
@Autowired
private RedisTemplate redisTemplate;

saveOrUpdateRoom方法

java 复制代码
@Override
public void saveOrUpdateRoom(RoomSubmitVo roomSubmitVo) {
    boolean isUpdate = roomSubmitVo.getId() != null;
    super.saveOrUpdate(roomSubmitVo);

    //若为更新操作,则先删除与Room相关的各项信息列表
    if (isUpdate) {
       

        //6.删除原有leaseTermList
        ......

        //7.删除缓存
        redisTemplate.delete(RedisConstant.APP_LOGIN_PREFIX + roomSubmitVo.getId());
    }

  
    ......
}

removeRoomById方法

java 复制代码
@Override
public void removeRoomById(Long id) {

    //1.删除RoomInfo
    ......

    //2.删除graphInfoList
    ......

    //3.删除attrValueList
    ......

    //4.删除facilityInfoList
    ......

    //5.删除labelInfoList
    ......

    //6.删除paymentTypeList
    ......

    //7.删除leaseTermList
    ......

    //8.删除缓存
    redisTemplate.delete(RedisConstant.APP_ROOM_PREFIX + id);
}

压力测试

Apifox对根据ID获取房间详情这个接口进行压力测试

成功

自动化测试

七、项目部署

域名解析

部署前端项目

java 复制代码
npm run build

后台管理系统

admin.lease.nanshu.xyz

移动端

lease.nanshu.xyz

部署后端项目

使用 IDEA 的 maven 插件对项目进行打包,完成后,在web-adminweb-app 模块的target目录下找到web-admin-1.0-SNAPSHOT.jarweb-app-1.0-SNAPSHOT.jar

因为数据库权限设置为本地

所以我跳过测试打包

问题

全启动瞬间负载100%,就这样

结束

相关推荐
QiZhang | UESTC26 分钟前
学习日记day76
学习
久邦科技33 分钟前
20个免费电子书下载网站,实现电子书自由(2025持续更新)
学习
Gain_chance1 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
Gain_chance2 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
XH华3 小时前
备战蓝桥杯,第九章:结构体和类
学习·蓝桥杯
Gain_chance3 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
Ziky学习记录4 小时前
从零到实战:React Router 学习与总结
前端·学习·react.js
sensen_kiss5 小时前
INT303 Coursework1 爬取影视网站数据(如何爬虫网站数据)
爬虫·python·学习
red_redemption5 小时前
自由学习记录(116)
学习
r i c k6 小时前
数据库系统学习笔记
数据库·笔记·学习