摘要: /* *功能描述:文件上传的工具类,自动生成不重复的文件名 */ public class FileUtil { public static String getDatePath(){ Date date = new Date(); //格式化对象 SimpleDateFormat format = 阅读全文
posted @ 2021-11-06 13:17 2333gyh 阅读(122) 评论(0) 推荐(0) 编辑
摘要: input标签当中回显失败,不显示任何日期 //使用fmt进行日期格式化 <fmt:formatDate value="${user.userProfile.birthday}" pattern="yyyy-MM-dd"></fmt:formatDate> 使用form表单上传input标签data 阅读全文
posted @ 2021-11-06 13:16 2333gyh 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 我这里是拦截器配置错了,将静态资源一起拦截了导致js加载失败 拦截器配置错误,将静态资源同样拦截了,导致js加载失败 <mvc:interceptors> <mvc:interceptor> <!--拦截的路径所有--> <mvc:mapping path="/**"/> <!--不拦共同资源--> 阅读全文
posted @ 2021-11-06 13:15 2333gyh 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 文件上传 之前做的文件上传是将文件上传到tomcat本地硬盘上,然后通过虚拟路径访问该文件。 但是如果在tomcat集群环境,这种方案肯定是不行的,所以需要用分布式的文件系统来存取文件。 这里我们使用阿里云的oss服务,来存储文件数据(图片、小视频、js、css.html) 1.阿里云登陆注册 ht 阅读全文
posted @ 2021-11-06 13:12 2333gyh 阅读(786) 评论(0) 推荐(0) 编辑
摘要: 如何保证订单状态一致性?如何保证接口的幂等性?订单系统保证幂等性? 保证幂等性是指保证用户多次重复操作或请求造成的结果是一致的,不会产生任何副作用 token机制原理和session的区别 1. 幂等实现流程 以订单系统为例,假设用户在付款流程中(此时页面跳转到第三方支付页面),用户在第三方支付成功 阅读全文
posted @ 2021-11-06 13:11 2333gyh 阅读(962) 评论(0) 推荐(0) 编辑
摘要: 1.订单失效原理 订单失效的实现方式 1:redis的过期特性,redis提供了key过期的监听事件接口,通过监听key过期来实现订单失效,不支持集群环境(主从结构存在数据副本) 2:使用rabbitMq实现延迟队列的功能。 当生成订单时,将订单号放入死信队列(因为没有消息处理者,所以称为死信队列) 阅读全文
posted @ 2021-11-06 13:10 2333gyh 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 在单体架构中,所有的代码、模块都放在一份代码中,如果其中一个模块需要升级,哪怕只修改了一点点,整个系统也要一起升级,这样耦合度太高,同时代码管理也比较难。 到了分布式系统架构,这里现在有前台系统、订单系统、会员系统,这三个系统分别独立部署,如果需要升级某个系统,其他系统不需要进行调整。 有些请求不是 阅读全文
posted @ 2021-11-06 13:06 2333gyh 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1.申请流程 支付宝开发平台 https://openhome.alipay.com/platform/appManage.htm#/apps 沙箱环境 : https://openhome.alipay.com/platform/appDaily.htm?tab=info 支付参数api: htt 阅读全文
posted @ 2021-11-06 13:00 2333gyh 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 1.秒杀的业务逻辑 秒杀会出现高并发的情况,关系型数据库并发能力较弱,高并发会导致数据库崩溃 使用非关系型数据库 在网关这一块,使用nginx进行负载均衡,保证访问可以被消化,在应用服务器端使用tomcat集群,唯一有问题的是在数据库这一端 抢购秒杀(限时特惠) 高并发 限时 限量 实现抢购秒杀 1 阅读全文
posted @ 2021-11-06 12:58 2333gyh 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 1.订单号生成(雪花算法) 引入一个工具类,直接调用方法生成 2.生成订单页面 @RequestMapping("/confirmSeckillOrders") public String confirmSeckillOrders(int id, HttpSession session){ //用户 阅读全文
posted @ 2021-11-06 12:58 2333gyh 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1.缓存 ​ 缓存是指提前缓冲、预存数据在非关系型数据库里,当进行数据查询的时候, ​ 先查询缓存再查询关系型数据库,可以理解成map<查询条件,List> ​ 对于高并发或者是复杂sql,关系型数据的效率非常低 ​ 缓存的使用场景:高频查询、低频修改的数据(热点数据) ​ 缓存的工作模型:数据查询 阅读全文
posted @ 2021-11-06 12:56 2333gyh 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 1.系统权限的拦截 ​ 对于一个系统来说,系统当中的不同用户访问资源的权限也是不同的 ​ 对于系统来说,用户,角色,权限必不可少,通常都是通过5张表来实现系统的权限控制 ​ 用户表,用户角色关系表,角色表,角色权限关系表,权限表(菜单表) 不同的用户登陆,进来之后,看到的导航是一样的吗? 用户登陆成 阅读全文
posted @ 2021-11-06 12:55 2333gyh 阅读(89) 评论(0) 推荐(0) 编辑
摘要: ssm框架整合参照上一篇:https://www.cnblogs.com/guyihan/p/15516543.html 1.ssm框架整合redis 使用spring中封装的各种数据库支持redisTemplate <dependency> <groupId>org.springframework 阅读全文
posted @ 2021-11-06 12:54 2333gyh 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 引入依赖(pom.xml导包) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- 阅读全文
posted @ 2021-11-06 12:51 2333gyh 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 1.设置key的生存周期 Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁 expire key seconds 设置key的生存时间(单位:秒),key在多少秒后会自动删除 ttl key 查看key的生存时间 persist key 消除生存 阅读全文
posted @ 2021-11-06 12:49 2333gyh 阅读(177) 评论(0) 推荐(0) 编辑
摘要: NoSQL数据库 NoSQL,泛指非关系型的数据库,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得 阅读全文
posted @ 2021-11-06 12:38 2333gyh 阅读(140) 评论(0) 推荐(0) 编辑
摘要: mysql安装 如果没安装wget,先安装 yum install –y wget 检查系统中是否已安装 MySQL rpm -qa | grep mysql 返回空值的话,就说明没有安装 MySQL 查看已安装的 Mariadb 数据库版本。 rpm -qa|grep -i mariadb 卸载已 阅读全文
posted @ 2021-11-06 12:36 2333gyh 阅读(253) 评论(0) 推荐(0) 编辑
摘要: linux vmware visualbox 虚拟机工作平台,提供了虚拟环境用于创建虚拟机(windows、linux等) linux linux广泛运用于生产环境和测试环境,linux常用的实现 centos、ubuntu、red hat linux和windows对比 1:linux安全性高,稳 阅读全文
posted @ 2021-11-06 12:34 2333gyh 阅读(28) 评论(0) 推荐(0) 编辑