- 博客(107)
- 资源 (6)
- 收藏
- 关注
原创 yum源配置
执行 yum makecache 命令重新创建缓存。如果该命令正常执行如下。挂载成功后,查看/mnt/cdrom中内容。看到光驱路径为 /dev/sr0。查看光驱挂载路径 df -h。修改dvd.repo文件。
2023-04-09 13:57:30
735
原创 databaseId兼容不同厂商数据库对应的SQL
MyBatis 会加载不带 databaseId 属性和带有匹配当前数据库 databaseId 属性的所有语句。如果同时找到带有 databaseId 和不带 databaseId 的相同语句,则后者会被舍弃。使用databaseId兼容不同厂商数据库SQL语句的不同写法或不同的函数用法。在编写SQL语句中加入指定库名编写出对应不同厂商兼容的SQL语句。在application.yml中指定数据库。
2023-03-26 00:40:34
681
原创 MapStruct
Java中用来做不同对象之间的转换(DTO,PO,VO等),使用方式简单,只需要按规则写一个相关接口,就能直接完成对象间的转换。MapStruct 是一个 Java 注释处理器,用于生成类型安全的 bean 映射类。在编译期间,MapStruct 将生成此接口的实现。这个实现使用普通的 Java 方法调用(get,set方法)来映射源对象和目标对象,而不是使用反射。则调用时间可先通过Autowired注入。
2023-03-26 00:12:35
490
原创 kafka连接日志警告Connection to node 0 (localhost/127.0.0.1:9092) could not be established.
kafka启动后命令行测试进行发布订阅操作正常使用,且端口网络也是通的,服务启动后却不停的打出警告日志。
2022-11-23 19:15:29
2021
原创 ElementUI中上传组件在表单中携带其它值提交使用
ElementUI中的上传组件在表单中携带其它值提交表单后一起传到后端例: <el-form :model="submitForm" label-width="60px"> <el-form-item label="性别"> <el-radio-group v-model="submitForm.name"> <el-radio label="男"></el-radio>
2022-05-24 21:48:12
530
原创 byte数组与MultipartFile的相互转化
MultipartFile转化为byte数组byte[] bytes = multipartFile.getBytes();byte数组转化MultipartFile使用spring-test中的MockMultipartFile <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</
2022-05-24 21:25:49
11849
原创 elasticsearch问题总结
问题一:the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured没有配置节点,至少需要配置discovery.seed_hosts/discovery.seed_providers/cluster.init
2022-03-18 23:12:36
2688
原创 Comparable与Comparator的区别
Comparable 和 Comparator都是用来实现集合中元素的比较的Comparable 是在集合内部定义的方法实现的排序Comparator 是在集合外部实现的排序使用方法:Comparable :定义一个类去实现Comparator接口,重写其中的compare方法。Comparator :内部new接口并重写里面的compare方法例:list集合中的map中的key为time的按时间排序Comparator 写法 SimpleDateFormat simple
2022-02-22 22:26:06
888
原创 如何保证HashMap中key的唯一性
今天面试遇到的一个问题,总结如下问:如果有一个HashMap它的key是一个对象,如何保证这个key的唯一性?答:重写这个它的equals方法和hashcode方法问:重写equals方法的同时一定要重写hashcode方法吗?答:是的,因为HashMap在put元素的时候是先判断它的hashcode是否一样,若一样则调用equals比较,如果都一样才认为这个key已经存在代码测试:准备一个对象public class Person { private String name;
2021-08-31 00:28:40
3277
原创 ElasticSearch中文查询失败问题
termQuery不会将关键词进行拆分匹配matchQuery会将关键词进行拆分匹配如果使用matchQuery不安装中文分词器则只能进行一个字的匹配所以使用matchQuery进行匹配并安装中文分词器
2021-08-29 14:22:12
1194
原创 session和token和JWT的区别
session流程:客户端浏览器发送登录请求到服务器,服务器验证请求的用户数据,验证正确在服务器存储session数据并向客户端返回session id,客户端浏览器将session id存储在cookie中,再向服务器发请求就会携带session id,而服务器则会利用传过来的session id去获取对应的session数据,然后服务器查询用户信息并将查询到的用户信息返回给浏览器。弊端:session存储在服务器内存中,当用户量大的时候服务器的压力就会更大如果存储在session id被截获,容易
2021-08-25 23:35:21
319
原创 websocket的两种实现方式
WebSocket是在单个TCP连接上进行全双工通讯的协议,只要浏览器和服务器进行一次握手,就可以建立一条通道,两者之间实现数据互传。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </d
2021-08-22 22:29:10
1856
1
原创 支付宝沙箱支付
注意区分支付宝同步通知和异步通知同步通知:不能判断是否支付成功,用来支付完成后跳转页面异步通知:需要外网可以访问,支付宝发送post请求的地址,可以判断是否支付成功,从而做业务上的持久层操作AliPayConfig 支付宝参数配置类public class AlipayConfig { // APPID public static String app_id = ""; // 商户私钥 public static String merchant_private_key ="";
2021-08-21 15:41:43
777
原创 内网穿透(natapp)
场景:支付回调本地调试和小程序开发本地调试可能会用到这里使用的Natapphttps://natapp.cn/1.注册有免费和付费的免费的域名/端口随机付费的可以设置自己的二级域名购买时间填写本地要访问的端口购买二级域名(如果刚才是购买的免费的隧道则不需要)配置二级域名2.下载客户端解压下载的客户端下载配置文件http://download.natapp.cn/assets/downloads/windowsconfig/config.ini放在同级目录下,配置文件中填
2021-08-20 22:39:47
278
原创 echarts柱形图x轴显示不全问题
原因:x轴的数据太长解决办法:它有一个axisLabel属性,interval的值默认为1,当数据过长就会不显示 axisLabel: { interval:1, }将interval值该为0,就会强制显示 axisLabel: { interval:0, }或者将x轴的值进行旋转显示 axisLabel: { rotate:40, }...
2021-08-19 20:29:01
7196
3
原创 搭建FastDFS文件服务器
搭建FastDFS文件服务器一,准备安装包与环境二,安装 libfastcommon 库 (fastdfs运行所需的C语言函数库)三,安装FastDFS四, FastDFS配置五,放行所需端口六,启动FastDFS并测试七,FastDFS的HTTP访问配置八,HTTP访问启动测试一,准备安装包与环境1.准备所需安装包并上传至Linux2.检查是否安装了 gcc、libevent、libevent-develyum list installed | grep gccyum list install
2021-08-17 23:19:35
864
原创 cnpm : 无法加载文件 C:\Users\96522\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本.
使用cnpm报错 禁止运行脚本以管理员身份运行PowerShell输入set-ExecutionPolicy RemoteSigned选择A
2021-08-16 16:52:36
102
原创 vue 使用 js-file-download
axios并不支持这种下载请求,因此要使用使用 js-file-download安装npm install js-file-download封装请求import axios from "axios";const service = axios.create({ responseType: 'arraybuffer'})//请求拦截器service.interceptors.request.use(config => { config.headers['Author
2021-08-15 20:45:33
1303
原创 JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String
使用element 中的DateTimePicker 日期时间选择器选择日期后向后台发送请求时间报JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String日期格式不对,但后端对日期格式做过处理看了element官网,它有一个属性可以转换日期格式加上后问题解决...
2021-08-15 19:14:54
778
原创 vue-element-admin跨域问题
今天在使用vue-element-admin出现一个问题我在后端已经全局处理过跨域问题,而在使用vue-element-admin时间发起第一个login请求没有产生跨域的错误,而在发起第二个info请求时间却出现跨域错误,非常疑惑。解决办法:前端使用代理proxy:vue-element-admin已经安装了代理,就不须要从新安装了在vue.config.js做以下配置.env.development 中修改 VUE_APP_BASE_API 为 ’ ’查看请求包是9528而不是后端接
2021-08-12 23:46:32
1462
原创 Rabbitmq消费端消息消费幂等性的优化与手动ACK
如果重复的消息同时进来的话,我们就要进行消息幂等性的校验,使其只消费一条消息,使得消息不会被重复消费解决方案:对于mysql在高并发情况下存在的性能瓶颈,这里使用redis缓存,把消费过的消息id存入redis中,每次消费消息前,检查redis中是否存在该消息id,如果存在则证明被消费过不再消费,不存在则直接返回。1.开启手动确认 rabbitmq: username: guest password: guest host: 8.140.157.58 port: 5
2021-08-12 17:23:01
421
原创 RabbitMQ生产端消息可靠性投递实现
常见的解决方案有两种:1.消息落库,对消息状态进行打标2.消息的延迟投递,做二次确认,回调检查这里采用第一种方案实现流程:首先将将要发送的业务数据持久化到业务数据库中,消息状态的数据持久化到消息数据库中(初始状态为消息投递中)。生产者发送消息到RabbitMQ队列中,RabbitMQ开启确认回调,生产者监听确认回调,如果监听到则更新消息数据库中的状态为消息投递成功分布式定时任务获取所有投递中的消息,进行重发,如果某个任务的重发次数大于某个值分布式定时任务修改该消息状态为投递失败1.创建消
2021-08-12 16:25:02
298
原创 使用rabbitmq作为消息中间件实现简单邮件发送业务
在项目中用到了邮件发送的业务(新员工入职,入职后自动向其发送入职邮件),这里使用rabbitmq作为消息中间件简单实现一个邮件发送的业务1. 准备一个发送者邮箱,开启SMTP服务这里使用了一个163邮箱作为发送者邮箱,开启SMTP服务得到一个授权码新建一个模块作为邮件发送模块依赖 <!--rabbitmq--> <dependency> <groupId>org.springframewor
2021-08-11 22:29:48
2810
原创 Docker安装
安装yum-utilsyum install -y yum-utils配置国内镜像yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装Dockeryum install -y docker-ce docker-ce-cli containerd.io查看Docker版本docker version启动systemctl start ..
2021-08-11 18:17:32
95
原创 Swap file “/etc/.hosts.swp“ already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it
原因:非正常关闭vi编辑器时会生成一个.swp文件解决方法:恢复文件: vi -r 文件名删除swp文件 rm .文件名.swp
2021-08-11 16:42:48
1403
原创 RabbitMQ的安装
知识点总结:消息队列(MQ)是一种进程间通信或同一进程的不同线程间的通信方式。消息队列提供了异步的通信协议,MQ是遵循了AMQP协议的具体实现和产品。消息的发送者和接收者不需要同时与消息队列互交,消息会保存在队列中,直到接收者取回它。AMQP:高级信息队列协议,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。安装Erlang:1.下载erlang的rpm仓库wget https://packages.erlang-solutions
2021-08-11 16:38:09
240
原创 easypoi 的使用
对poi进行了封装,简化代码量,提高开发效率,避免出现大数据量下效率低甚至可能出现内存溢出的情况仓库地址:https://gitee.com/lemur/easypoimaven依赖: <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId>
2021-08-10 16:22:09
330
原创 Stream流
Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作1.创建流 //方法一.Collection.stream() 方法用集合创建流 ArrayList<String> list = new ArrayList<>(); Stream<String> stream1 = list.stream(); HashSet<String> set =.
2021-08-07 21:53:48
134
原创 vue-element-admin使用问题总结
1.不再使用mock数据vue.config.js 注掉该句2.接口请求地址development 开发环境production生产环境开发环境中VUE_APP_BASE_API改为接口请求地址3.后端解决跨域请求略4.修改tokenHeader后端设置的tokenHeader在request.js中修改tokenHeader为后端设置的tokenHeader5.修改请求在api/user.js中修改请求的URL和类型,参数等与接口对应...
2021-08-05 01:51:49
352
原创 远程连接服务器mysql8.0报错1130与2059
1130报错原因:帐号不允许从远程登陆,只能在Linux服务器本地登录解决办法:在服务器中将user表中host字段的localhost改为%use mysqlupdate user set Host=’%’ where User=‘root’;flush privileges;2059报错错误原因:加密规则不一致,MySQL8.0 之前的版本中加密规则是mysql_native_password,而在8.0之后是caching_sha2_password解决方法:更改加密规则AL
2021-07-30 22:04:17
217
原创 无法连接远程redis问题
总结:1.允许redis外网访问开启这个配置时:redis 只接收来自于该 IP 地址列表的请求,如果不进行设置,那么将处理所有请求注释掉bind 127.0.0.1,允许redis外网访问2.关闭保护模式protected-mode改为no,默认为yes3.开放云服务器端口6379遇到的坑:千万不要使用宝塔面板开放端口!!!我使用宝塔面板开放了端口6379不起作用,打开阿里云控制台后才发现根本没有放行6379端口以后再开放端口一定要使用阿里云控制台!!!...
2021-07-28 22:13:40
137
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人