电商项目记录1

news/2024/7/23 10:44:10 标签: 电商项目

首先我们采用的前后端技术栈

将静态页面部署到nginx

后台项目架构采用父子聚合工程

数据库建模工具使用pdman,移除物理外键的原因

  • 性能
  • 热更新
  • 降低耦合度
  • 方便分库分表

dao层使用MyBatis逆向工程和HiKariCP整合

service层事务的传播机制

  • REQUIRED : 使用当前事务,如果当前没有事务,则自己新建一个事务,子方法是必须要运行在一个事务中的
  • SUPPORTS : 如果当前有事务,则使用事务,如果当前没有事务,则不使用事务
  • MANDATORY : 强制必须存在一个事务,如果不存在就抛异常
  • REQUIRS_NEW :如果当前有事务,则挂起事务,并且创建一个新的事务给自己用,如果当前没有事务则同REQUIRED
  • NON_SUPPORTED : 如果当前有事务,则挂起事务,自己不使用事务
  • NEVER : 如果当前有事务,则抛出异常
  • NESETED : 如果当前有事务,则开启子事务(嵌套事务),嵌套事务是独立提交或者回滚,如果当前没有事务则同REQUIRED
    • 如果主事务提交,则会携带子事务一块提交或者回滚。相反子事务异常,则父事务可以回滚或者不回滚

 

为什么不用@EnableTransationManagment注解直接使用@Transation也可以生效?

因为在使用springboot的自动配置时,已经将事务自动装配了

controller层使用restful风格

实现单体电商核心功能

  • 用户注册
    1. 用户名是否存在
    2. 创建用户
    3. 用户登录和退出(session,cookie)
  • 首页功能
    1. 轮播图列表展示(放入redis中,定时更新或者后台管理系统更新)
    2. 三级分类(mybatis 嵌套查询)
    3. 推荐分类下最新的6个商品
  • 商品详情功能
    1. 商品详情
    2. 商品评价(pageHelper,信息脱敏)
    3. 商品搜索
    4. 购物车(crud,cookie,redis,前后端要一致是否登录)
    5. 生成订单(order,order_item,order_status)
    6. 微信,支付宝支付(流程图,内网穿透netapp,定时任务关闭未支付订单)
  • 云端部署
    1. JDK,tomcat,MariaDB的安装

 

 


http://www.niftyadmin.cn/n/613399.html

相关文章

【FME-HOW-TO系列】13 通过重新采样修改栅格像元大小

概述 在本教程中,您将学习如何使用FME RasterResampler转换器修改栅格像元大小。RasterResampler根据用户指定的参数(栅格尺寸,像元大小或大小百分比)和插值方法(最近邻,双线性,双三次&#xf…

paas saas iaas 区别_聊一聊,实验室信息管理系统(LIMS)与PaaS

实验室信息管理系统(LIMS)是先进的、强大的、灵活的、完整的、可扩展升级的实验室信息化典范。给用户提供一个开放性的应用软件平台,遵循实验室标准化管理规范,采用模块化的设计方式,适用于不同类型分析、检测和校准实验室的综合管理。上一篇…

【FME-HOW-TO系列】14 按地理要素更改栅格值

概述 在本教程中,您将学习如何通过将多边形叠加到栅格数据集上来选择区域并更改栅格像元的值。这可以使用MapnikRasterizer,现有栅格数据集以及点,线或多边形要素在FME中轻松完成。 下载 changing-raster-values-by-geographic-feature.fmw…

高可用集群之(2)redis哨兵模式

Redis 的哨兵模式 Sentinel(哨兵)是用于监控Redis集群中Master状态的工具,是 Redis 高可用解决方案,哨兵可以监视一个或者多个redis master服务 某个master服务宕机后,会把这个master下的某个从服务升级为master来替代已宕机的master继续工作…

python编程项目中遇到的困难_python简单开发中遇到的一点问题

先开个坑,现在没时间。 主要问题是:cython学习中遇到的 c1.o:c1.c:(.text0x46): undefined reference to _imp__PyObject_GetAttr c1.o:c1.c:(.text0xec): undefined reference to _imp__PyDict_Size c1.o:c1.c:(.text0x132): undefined reference to _i…

【FME-HOW-TO系列】15 减少不必要的坐标点

概述 在本练习中,您将学习如何通过使用FME中的Generalizer转换器删除不必要的坐标来简化线型要素- 此操作通常称为除草(weeding)。 下载 reducing-unnecessary-coordinates.fmwt bike-paths.zip 注意:由于您正在处理面向公众的数据库,因此…

高可用集群之redis(3)

缓存穿透 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求。导致数据库压力过大。 解决方法 将key-value对写为key-null(空对象,空集合,空字符串),缓存有效时间可以设置短点布隆过滤器 缓存雪崩 缓存雪崩是指缓存…

python无人驾驶_无人驾驶技术——ROS进阶之python实现串口通信

文章目录 环境 Ubuntu16.04 ROS Kinetic PC与开发板1串口通信示例 #usr/bin/python3 # -*- coding: utf-8 -*- import rospy from std_msgs.msg import String import serial import time def gbk_2_number(strsrc): result [] for i in range(0,len(strsrc),2): tmp strsrc[…