- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 分布式流水生成
在分布式高并发环境下,有些时候我们需要生成一些包含业务逻辑性的唯一标识,例如订单编号:可能由业务字符 +当前时间+唯一字符串 : ZFB:(支付宝)+20220819+000001,这个时候就我们需要保证在高并发情况下后六位数字不重复。
2022-08-24 23:09:29
540
原创 Nginx基础
1丶什么是Nginx Nginx 是一个高性能的HTTP和反向代理web服务器(反向代理后端地址),同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少,并发能力强,Nginx上官网上解释一秒可以支持50000个并发连接。在实际的生产环境中,Nginx可以支持20000-40000个并发连接,目前众多公司都在Nginx。2丶Nginx有什么作用前端项目部署 项目开发完成后,前端项目需要服务器部署. 我们可以使用 vue-cli的打包命令:npm run ...
2022-05-15 11:34:39
314
原创 JAVA对接支付宝,实现支付功能
网站对接支付宝支付沙盒开通支付宝给我们提供了支付宝支付沙盒 供测试 注册沙盒可以自行 百度开通 这里不过多介绍对接支付宝主要流程 我们在我们订单支付时给支付宝发送一个创建订单请求 在创建订单时创建支付订单 使用工具类创建供前端订单页面使用的数据包 支付宝配置类↓ public class AlipayConfig { // 服务器异步通知页面路径 public static String notify_url = "http://";
2022-05-11 20:20:42
2466
原创 【无标题】
JAVA对接支付宝网站对接支付宝支付沙盒开通支付宝给我们提供了支付宝支付沙盒 供测试注册沙盒可以自行 百度开通 这里不过多介绍对接支付宝主要流程我们在我们订单支付时给支付宝发送一个创建订单请求在创建订单时创建支付订单使用工具类创建供前端订单页面使用的数据包支付宝配置类↓public class AlipayConfig {// 服务器异步通知页面路径public static String notify_url = “http://”;// 页面跳转同步通知页面路径public
2022-05-11 20:16:34
334
原创 如何在前后端分离项目中搭建easy-mock
随着前后端项目开发模式的兴起,越来越多的人使用easy-mock来模拟前端数据。Easy Mock 是一个可视化,并且能快速生成模拟数据的持久化服务。接下来介绍一下如何在自己本地搭建easy-mock一、搭建环境:node(version:8.9.0)、Redis(2version:3.2.1)、MongoDB(version:3.4)二丶 进入官网1创建一个项目2第二步填写信息,这里项目名和url都是按照自己的意愿来填写,这会为最后生成的api数据接口提供地址...
2022-02-19 15:36:43
271
原创 Apache Log4j 2升级到2.16.0最新版本的解决方案
springcloud微服务中如何升级log4j最新版本2.16.0的解决方案
2021-12-18 00:54:56
16044
原创 分布式项目中 如何保证线程安全问题?-------ZooKeeper
前沿: 上篇文章我们聊到了在解决分布式项目中线程安全问题,提到解决方案还有其他的,那么在此提出 基于 zookeeper 解决分布式项目中的线程安全问题 也是目前市面上比较流行的。做为一个高级开发工程师也是必须要学习的。ZooKeeper是什么东西?是协调多个分布式进程之间的活动的。 主要应用在分布式系统中 保证跨jvm虚拟机之间的线程安全。ZooKeeper是怎么在分布式应用使用的?...
2021-11-11 23:26:39
5926
原创 分布式项目中 如何保证线程安全问题?-------Redis
前沿: 在传统单体项目中,没有对项目进行集群的情况下,我们保证线程安全,可以利用到JDK(jvm)里面自带两把锁,Lock锁,Synchronized锁。保证单体项目中线程安全问题。 在项目做了集群之后,部署到其他机器上的时候,这个时候是跨了jvm虚拟机的,JDK(jvm)自带的锁 就不能处理到其他机器上的线程那么我们如何解决分布式项目中 线程安全问题呢 ? 基于上面的问题 这个时候我们可以把 锁整成为一个公共的服务或者中间件。线程需要拿到锁之后才可以执行相应的服务。...
2021-11-11 22:32:25
5149
原创 事务基础-Seata分布式事务
对于Mysql事务我们都知道事务具有ACID四个特性,分别为:原子性,一组操作不可分割,要么全部成功要么全部失败 。Mysql如何实现原子性,是通过innodb的 undolog回滚日志实现,当事务失败的时候执行回滚操作 一致性,任何写到数据库的数据都必须满足于预先定义的规则(比如余额不能小于0、外键约束等) 隔离性,如果两个事务同时操作一条数据,通过加锁,按照顺序执行,不能相互影响 持久性。通过redolog实现 记录的是新数据的备份 用来持久化 , Undolog记录的是旧数...
2021-11-10 23:57:24
979
原创 实现无感刷新token
登录页面:methods:{ submitLogin:function () { this.$http.post("/auth/loginUser/login",this.formParams).then(res=>{ var ajaxResult = res.data; if(ajaxResult.success){ var accessToken = ajaxResult.result.
2021-11-09 22:23:09
607
转载 cookie、localStorage和sessionStorage 三者之间的区别以及存储、获取、删除等使用方式
生命周期:cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效localStorage:除非被手动清除,否则将会永久保存。sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。存放数据大小:cookie:4KB左右localStorage和sessionStorage:可以保存5MB的信息。http请求:cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题localStorage和sessi
2021-11-09 12:18:03
412
原创 Redis介绍以及使用步骤
Redis介绍以及使用步骤Redis 是一个高性能的开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。并且要持久化到磁盘提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 一、pandas是什么Redis 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础
2021-11-05 10:57:53
540
原创 报错: java.lang.IllegalArgumentException: mapper [categoryName] of different type, current_type [text]
Elasticsearch报错:非法参数异常Caused by: java.lang.IllegalArgumentException: mapper [categoryName] of different type, current_type [text], merged_type [keyword]解决: 删除elasticsearch的索引库,重新启动。原因: 索引库冲突————————————————2020-08-10 08:53:44.442 INFO 10452 --
2021-10-31 21:59:36
1983
原创 mysql数据保存乱码文件解决方案
url: jdbc:mysql://127.0.0.1:3306/hrm-course-parent?useUnicode=true&characterEncoding=UTF-8把问好后面的内容,复制一下就可以 解决
2021-10-31 17:10:05
184
原创 Redis的缓存击穿,雪崩,穿透的解决方案
首先先来认识一下这三种概念缓存击穿: 缓存中没有但是数据库中有的数据,通常指的是某一个时间节点,某一个缓存过期时间到了,而此时大量的请求访问该缓存数据,大量的请求将会直接访问数据库获取数据,导致数据库压力过大。解决方案:1.热点数据永不过期2.此时对访问数据库获取数据的操作进行加锁,同时只有一个请求能够获取到锁去数据库中查询到数据,并将数据保存到缓存中,其他请求则再次从缓存中获取缓存雪崩:缓存中的数据在同一时间大量过期,此时大量请求访问,导致大量的请求到达数据库,数据库压力过大。解..
2021-10-30 23:37:00
100
原创 Resolved [org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.
今天在做项目时候,在对无限级树的时候,发生了以下错误Resolved [org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Statement returned more than one row, where no more than one was expected错误原因是 Mybatis结果集映射的时候,在嵌套查询里.
2021-10-29 23:49:30
2131
原创 mybatis pusl实现自定义的,高级从查询和分页
在 controller层@RestController@RequestMapping("/tenant")public class TenantController { @Autowired public ITenantService tenantService; /** * 分页查询数据 * * @param query 查询对象 * @return PageList 分页对象 */ @PostMapping("
2021-10-27 00:53:07
956
原创 SpringClould的组件Hystrix和详细使用步骤
大致思路:指定springcloud和spingboot版本,先搭建注册中心,再次搭建提供者和消费者的服务,注册到注册中心,配置fegin 再配置降级1,创建maven 项目 ,pom.xml中 配置springcloud和springboot的版本,和jdk和字符集版本 <!--指定springcloud和springboot的版本要一致,才可也搭配使用--> <properties> <project.build.sourceE.
2021-10-22 19:36:23
183
原创 SpringCloud基本使用方法,带集群步骤
1:创建父项目。导入依赖 <!--指定jdk版本--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <j.
2021-10-18 22:59:08
248
原创 企业中常问的redis相关面试题,理解到了。吊打面试官
1 redis的持久化机制有哪些?分别是怎么设置的?答:通过AOF和RDB来实现的,AOF需要在appendonly yes 开启,默认是启用的RDB,当前redis启动的时候,会检查是否开启了AOF如果开了,就加载AOF和RDB,如果没开,则只加载RDB,其中RDB 通过的 时间 次数 写RDB文件。会使用序列号加密存储,而AOF每次操作的是日志文件2.redis的淘汰策略答:从设置了过期时间的key中挑选,挑选最少使用的或者将要过期的淘汰从所有key中,挑选最...
2021-10-11 12:59:40
73
原创 Caused by: java.lang.ClassNotFoundException: lombok.Data
错误原因:实体类里面使用Data做类型。Date才是正确的
2021-10-08 21:14:43
939
原创 拉起微信三方登录,详细实现步骤
概述:本篇文章详细记录网页做微信登录的功能用户一次扫微信登录,直接拉取回调页面,绑定手机号,后端处理数据,为用户生成密码,短信告知用户。用户第二次扫码。直接登录成功。这次三方登录利用的SpringBoot环境。基础准备:前端:。微信登录按钮跳转拉起微信扫码登录。 。回调页面后端: 。微信实体类。表。发送短信的工具类封装为接口Sms。发送请求的工具类Httpclient。开始:在微信开放平台注册账户,需要用公司名义注册(费用为300元),个人无法注册,...
2021-10-05 18:21:31
2124
原创 Springboot项目实现SQL语句打印在工作台
需要两个配置即可SQL日志信息1yml里面写如下配置logging: level: root: info cn: wl: debugcn:是第一层的包名wl:是第二层的包名2.导入日志依赖<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j</a...
2021-09-27 20:15:24
154
原创 企业中登录中4个拦截器功能详细实现步骤
流程:以下内容可拷贝直接用。1.1登录成功。把token和loginInfo 放进 通过localStorage放进本地浏览器。类似于cookie。2.1 axois前置拦截。作用就是把登录之后的每个请求头里面加上token 表示是登录过的标识2.2 后端java代码做拦截配置2.3 axois的后置拦截,实际就是对后端拦截出来的报错信息进行处理2.4 前端静态资源拦截也可以叫做路由拦截。 如果通过路由访问登录和注册就放行。如果是访问特定资源。就从之前localStorag...
2021-09-27 16:40:27
738
原创 Caused by: java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))启动服务器,报以上错误。错误的意思是,链接数据库的账号获取密码错误,导致无法链接到数据库解决方案:检查程序中链接 数据库的帐号和密码,有空格请去掉...
2021-08-21 21:14:02
755
原创 java提升异常错误解决思路
启动项目之前保证没有编译错误,就是代码冒红,编译都出问题了,项目跑不起来一:启动就报错分析:启动的时候会加载web.xml的配置文件,web.xml还加载了Spring和SpringMvc和Mybatis的sql映射文件, 所以只要有一个xml文件中出问题,都会导致启动报错 1.编译路径 2.部署是否正确:server.xml 3.启动报错信息 sql文件 + @Service 解决思路: 看...
2021-08-21 21:07:56
175
原创 java代码查询电脑的指定后缀文件
查询电脑中指定后缀的文件名字的方法如下图:这里需要用到递归思想思路大致如下:1:判断参数是否为空或者不存在2:利用File类中 方法:File[] listFiles() 获取当前目录下面所有的文件或者文件夹 3:判断文件夹和文件是否存在,如果存在就循坏。4:如果是一个文件夹,就继续调用方法。如果不是文件夹则判断是否以指定的后缀结尾,是的话就直接打印package wl.itsource.javase._01fIle._07;import java.io.File;impo...
2021-07-11 22:13:04
454
原创 启动Thread线程和不启动Thread线程的运行区别
启动线程后,程序执行速度更快,启用予执行的多线程后,当启用主方法后会分配到cpu的执行权。以下代码案例,测试的是直接调用run方法和start来执行的,程序,看下图/** * * 启动run方法 ----最优耗时12ms * * 启动 start方法 -----最优耗时1ms * * *总结:start方法为预执行的线程分配执行权限,效率远高于run方法。 */public class ThreadTest { public static void main(String.
2021-07-05 16:07:23
395
原创 Calendar(日历的抽象类)为何可以被实例化?
概念:java中已经把日历封装好了,我们直接使用。常用于统计报表中,例如:需要查看月账单,年账单等。Calendar本身是一个抽象类,抽象类是不允许被实列化的。但是Calendar提供了一个方法:static Calendar getInstance()来获取实例化的对象。代码案例:import java.util.Calendar;import java.util.Date;public class CalendarTest { public static void mai...
2021-07-04 14:19:05
1498
原创 请设计一个方法swap,将int数组指定两个下标的元素交换。
public class _02Exercises { public static void main(String[] args) { //请设计一个方法swap,将int数组指定两个下标的元素交换。 int[] arr = new int[]{1,2,3,4}; //调用方法 swap(arr, 2, 3); //打印漂亮格式 String string = java.util.Arrays.toString(arr); System.out.println(stri..
2021-06-22 19:21:51
1080
原创 java中请设计一个方法,将一个int数组arr中指定的两个下标之间的元素删除【牛皮级别-很难】
/** *java中删除下标之间的元素,百分之95都是含头不含尾。即{ ) */public class _04Exercises { public static void main(String[] args) { //请设计一个方法,将一个int数组arr中指定的两个下标之间的元素删除 int[] arr = new int[]{1,2,3,4,5,6}; int[] expurgate = expurgate(arr, 1, 3); // 调用方法 .
2021-06-22 19:19:11
977
原创 java中获取当前日期的两种写法
package ceshi;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class IntergerTest { public static void main(String[] args) { // 方法一: 利用Calendar方式获取对象日期进行拼接 Calendar ii = Calendar.getInstance(); // 创建日历.
2021-05-31 17:55:12
161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人