java
文章平均质量分 56
擦肩而过
天道酬勤,精益求精
展开
-
AES算法的CBC和ECB两种工作模式(Java版)
AES算法的密钥长度有128位、192位和256位的,工作模式有ECB、CBC、PCBC、CTR等,填充模式有NoPadding、PKCS5Padding、PKCS7Padding等。CBC工作模式需要一个随机数作为IV参数,这样对于同一份明文,每次生成的密文都不同。转载 2023-08-25 14:57:44 · 1130 阅读 · 0 评论 -
Java程序,插入new Date()时间,入mysql库后,时间比当前系统时间少了14个小时
先来了解下美国的时区变化历史,美国规定每年从“3月11日”至“11月7日”实行夏令时,美国中部时区改为UTC-05:00;而“11月7日”至“3月11日”实行冬令时,美国中部时区改为UTC-06:00,博主的线上问题发现的时间是2019年1月9日,而此时美国中部的时区是UTC0600,而我们的时区是UTC0800,所以6+8=14个小时,因此线上的错误时间相隔14个小时。废话不多说,直接上图,第一个,是程序日志打印时间,第二个是插入到数据库中的时间,数据库为mysql,时区设置为北京。转载 2023-08-18 14:17:01 · 580 阅读 · 0 评论 -
vert.x框架学习笔记
摘要Vert.x最大的特点就在于异步(底层基于Netty),通过事件循环(EventLoop)来调起存储在异步任务队列(CallBackQueue)中的任务,大大降低了传统阻塞模型中线程对于操作系统的开销。因此相比较传统的阻塞模型,异步模型能够很大层度的提高系统的并发量。Vert.x除了异步之外,还提供了非常多的吸引人的技术,比如EventBus,通过EventBus可以非常简单的实现分布式消息,进而为分布式系统调用,微服务奠定基础。转载 2023-08-17 15:03:34 · 2184 阅读 · 0 评论 -
Java netty发送接收(TCP、UDP)
【代码】Java netty发送接收(TCP、UDP)转载 2023-08-08 18:33:17 · 2578 阅读 · 0 评论 -
Springboot+Netty整合接收tcp消息(其它方式)
这个是为了设置超时时间,建立的线程超过10分钟就会断开,触发线程里面的userEventTriggered()方法,可以做很多事情。实际操作起来并不建议这么写,这边权宜之计。特别需要注意的是,异常触发事件触发完之后还会触发连接断开的事件,超时之后也会在触发其他的,所以用之前确认一下联系,不要重复触发。在接下来就是exceptionCaught(),这个是个异常捕捉的方法,报错之后会转到这边处理,这边代码就不贴了,都是业务代码。这样可以读到上传数据,我这边是接收的hex文件,所以做了点处理,这边就不分享了。转载 2023-08-08 18:25:03 · 646 阅读 · 0 评论 -
SpringBoot+Netty实现TCP客户端实现接收数据按照16进制解析并存储到Mysql以及Netty断线重连检测与自动重连
这里将发起连接的操作封装到工具类方法中,并在方法中添加try-catch,避免连接不上tcp导致无法启动。这里需要TCP的客户端在断线之后能自动发起重连,且不需重启SpringBoot,所以这里需要借助定时任务的。继续上面在解析数据并判断是需要的类型之后,就是封装到存储数据库的相关实体并插入到mysql。可模拟TCP服务器、客户端、转发器等,F1打开帮助,如果需要发送16进制数据,需要用方括号。服务端发送的数据并按照16进制进行解析数据,然后对数据进行过滤,将指定类型的数据。转载 2023-08-07 14:56:40 · 2163 阅读 · 0 评论 -
elasticsearch部分常用操作
如果迁移自动停止了或者成功了就看不到进度,在数据预览里可以看到.tasks这个索引,是自动生成存储task任务的,查看详情,如果没有报错则成功迁移,报错几乎原因都是数据太大,所以需要调小size并重试。可压缩成压缩包剪切到其他机器,减少本集群的硬盘占用,需要在yml指定目录,见安装集群配置文件elasticsearch.yml,目录建议放在硬盘空间大的目录,防止快照文件过大导致失败,把快照文件传过来,在快照目录下解压,解压的文件会生成目录my_backup和新机器指定的目录名称需要一致。转载 2023-08-07 14:21:09 · 274 阅读 · 0 评论 -
springboot + rabbitmq 做智能家居
但当我真正的参与其中开发时,其实有一点小小的失望,因为在整个研发过程中,并没用到什么新的技术,还是常规的几种中间件,只不过换个用法而已。(4-7)位表示消息类型,使用4位二进制表示,可代表如下的16种消息类型,不过 0 和 15位置属于保留待用,所以共14种消息事件类型。)进行分离,因此可以在不可靠的网络环境中,为远程连接的设备提供可靠的消息服务,使用方式与传统的MQ有点类似。可变头部居于固定头部和payload中间,包含了协议名称,版本号,连接标志,用户授权,心跳时间等内容。转载 2023-08-05 07:24:40 · 601 阅读 · 2 评论 -
Springboot+Netty搭建基于UDP协议的客户端(四)
使用Netty+SpringBoot方式可以快速地开发一套基于UDP协议的服务端程序,同样的也可以开发客户端,一般使用UDP都是使用原生的方式,发送消息后就不管不问,也就是不需要确定消息是否收到,这里使用Netty创建的客户端和服务端倒是能够类似http协议那样请求数据,得到返回数据,实际上得到的就是服务端原路返回的数据。原创 2023-07-27 16:58:45 · 1051 阅读 · 0 评论 -
Springboot+Netty搭建基于UDP协议的服务端(三)
UDP是一个无连接协议,应用范围很大,对于一些低功耗的设备可以使用UDP方式向云端推送消息信息,也可以在推送消息时收到从云端原路返回的消息,使用Netty+SpringBoot方式可以快速开发一套基于UDP协议的服务端程序。1、 新建Springboot的maven项目,pom.xml文件导入依赖包。转载 2023-07-27 16:52:29 · 500 阅读 · 0 评论 -
Springboot+Netty搭建基于TCP协议的客户端(二)
之前搭建了一个Springboot+Netty服务端的应用,既然有服务端,自然也有客户端的应用,现在搭建一个Springboot+Netty客户端的应用Demo程序,也是使用TCP工具来进行测试,最终将客户端和服务端作为一个具体的应用来测试。1、新建Springboot的maven项目,pom.xml文件导入依赖包。转载 2023-07-27 16:45:03 · 534 阅读 · 0 评论 -
Springboot+Netty搭建基于TCP协议的服务端(一)
1.API使用简单,开发入门门槛低。2.功能十分强大,预置多种编码解码功能,支持多种主流协议。3.可定制、可扩展能力强,可以通过其提供的ChannelHandler进行灵活的扩展。4.性能优异,特别在综合性能上的优异性。5.成熟,稳定,适用范围广。6.可用于智能GSM/GPRS模块的通讯服务端开发,使用它进行MQTT协议的开发。转载 2023-07-27 16:32:15 · 5258 阅读 · 1 评论 -
阿里OSS 根据ossKey直接获取base64
【代码】阿里OSS 根据ossKey直接获取base64。转载 2023-06-26 06:29:32 · 992 阅读 · 0 评论 -
若依vue中el-select绑定值为整数无法默认选择
el-select v-model="form.dataStatus" placeholder="请选择状态">4、下拉列表绑定值为整数 - 字典。转载 2023-01-27 23:18:49 · 1534 阅读 · 0 评论 -
若依ruoyi-vue总结
2.若依连接阿里云服务器上的redis经常断开:因为redis现在默认使用的lettuce做缓存客户端,连接阿里云服务器上安装的redis经常断开(实测连接我本地redis没问题),目前只能把lettuce换成jedis。后端:ruoyi-admin-----application.yml中server.port: 8099。前端代理调用后端接口的端口修改:ruoyi-ui-----vue.config.js中。4.强退用户:将某用户的缓存从redis删除。# 端口,默认为6379。原创 2023-01-03 01:24:01 · 2407 阅读 · 0 评论 -
springboot整合shiro时,@value注解无法读取application.yml中的配置
LifecycleBeanPostProcessor将Initializable和Destroyable的实现类统一在其内部自动分别调用了Initializable.init()和Destroyable.destroy()方法,从而达到管理shiro bean生命周期的目的。使用springboot整合shiro时,@value注解无法读取application.yml中的配置。将LifecycleBeanPostProcessor的配置方法改成静态就可以了。转载 2022-11-06 17:10:03 · 685 阅读 · 0 评论 -
Redis之RedisTemplate配置方式(序列和反序列化)(八)
POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-server中将存储字节序列。是目前默认的序列化策略。:Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是“new String(bytes, charset)”和“string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。转载 2022-11-04 20:46:33 · 5772 阅读 · 0 评论 -
apache shiro内置过滤器 标签 注解
perms:例子/admins/user/**=perms[user:add:*],perms参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms["user:add:*,user:modify:*"],当有多个参数时必须每个参数都通过才通过,想当于isPermitedAll()方法。roles(权限验证) org.apache.shiro.web.filter.authz.RolesAuthorizationFilter。属性和roles一样;转载 2022-10-18 09:56:20 · 352 阅读 · 0 评论 -
Idea中如何配置中文API文档
jdk转载 2022-08-25 00:07:39 · 1672 阅读 · 0 评论 -
Java如何读取txt文件的内容?
io,nio转载 2022-09-16 21:57:09 · 48247 阅读 · 1 评论 -
Java:递归扫描某个文件下所有文件并使用正则匹配文件
file,path原创 2022-08-11 16:00:06 · 890 阅读 · 0 评论 -
ffmpeg如何实现MP3转码g711a
ffmpeg转载 2022-08-05 18:10:31 · 2429 阅读 · 0 评论 -
OpenSSL自签发配置有多域名或ip地址的证书
局域网上传转载 2022-06-23 14:22:17 · 818 阅读 · 0 评论 -
java request.getInputStream中文乱码解决方案
乱码转载 2022-06-17 18:17:15 · 3590 阅读 · 0 评论 -
一次性搞定权限树遍历(通用解决方案)
权限树转载 2022-06-16 09:46:59 · 304 阅读 · 0 评论 -
tomcat管理页面403 Access Denied的解决方法
tomcat,context.xml转载 2022-06-10 15:42:32 · 5909 阅读 · 3 评论 -
SpringBoot使用war包发布,javax.websocket.server.ServerContainer not available报错问题
SpringBoot打包成war之后,运行项目后websocket会报错并且崩溃,这个问题困扰了我一整天,今天终于找到原因了Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [org/xx/config/WebSocketConfig.class]:转载 2022-06-16 09:45:19 · 1061 阅读 · 3 评论 -
LocalDateTime格式化处理及全局配置
Java 8之后,日期类的处理建议使用java.time包中对应的LocalDateTime, LocalDate, LocalTime类。LocalDateTime支持ISO8601标准,即[2018-10-10T05:51:31.924Z]。在MVC中,习惯性用[yyyy-MM-dd HH:mm:ss]。(参考Java8新特性)在Spring Boot中(验证版本:2.1.5.RELEASE),日期类的序列化格式可能不是自己所希望的,需要定义为自己的格式。有两种方式实现。1. 注解方式分别使转载 2022-05-26 23:38:01 · 6997 阅读 · 0 评论 -
version `CXXABI_1.3.8‘ not found
问题:ImportError: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found (required by /opt/Python-2.7.13/lib/python2.7/site-packages/_icu.so)主要问题在于没有CXXABI_1.3.8解决办法:find / -name "libstdc++.so*"1libstdc++.so.6只是libstdc++.so.6.0.19的一个软连接strings /转载 2022-05-18 10:42:23 · 698 阅读 · 0 评论 -
NGINX + NACOS 集群 (LINUX)
Nacos集群的思想:一个Nacos请求通过Nginx的反向代理完成负载均衡获取Nacos集群节点,通过数据库集群完成Nacos数据同步Nacos集群的结构:Nacos集群搭建搭建集群的基本步骤:下载Nacos 搭建数据库,初始化数据库表结构 配置nacos 启动nacos集群 nginx反向代理下载并解压Nacosnacos在GitHub上有下载地址:https://github.com/alibaba/nacos/tags,可以选择任意版本下载初...转载 2022-05-07 07:01:16 · 2710 阅读 · 5 评论 -
nacos集群 Address already in use: bind(最简单的解决办法)
端口明明没被占用,为什么会出现Address already in use: bind?我是win10系统,然后设定的端口是8848,8849,8850,注意!!!我设置的是3个连续的端口,其中只有8849出现了Address already in use: bind的问题,8848和8850都没有出现问题。这个可能是windows操作系统的BUG。Linux我不知道有没有,所以我把端口改为8848,8850,8852后就没出现Address already in use: bind问题了。所以集群不要设转载 2022-05-06 22:12:58 · 2710 阅读 · 1 评论 -
Nacos单机集群版配置
一、概览Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。二、下载1.下载去GitHub下载好自己需要的版本,我下载的是:nacos-server-1.3.2.zip将下载好的文件上传到Linux2.解压unzip nac转载 2022-05-05 07:01:29 · 632 阅读 · 0 评论 -
微服务下的链路追踪(Sleuth+Zipkin)
目录Sleuth简介相关术语使用Sleuth引入依赖创建服务product-serviceorder-service启动&测试Zipkin使用Zipkin参考文章Sleuth简介Sleuth是Spring Cloud的组件之一,它为Spring Cloud实现了一种分布式追踪解决方案,兼容Zipkin,HTrace和其他基于日志的追踪系统,例如 ELK(Elasticsearch 、Logstash、 Kibana)。相关术语Sle...转载 2022-03-21 09:51:38 · 3067 阅读 · 0 评论 -
常用标准请求头字段
Accept设置接受的内容类型Accept: text/plainAccept-Charset设置接受的字符编码Accept-Charset: utf-8Accept-Encoding设置接受的编码格式Accept-Encoding: gzip, deflateAccept-Datetime设置接受的版本时间Accept-Datetime: Thu, 31 May 2007 20:35:00 GMTAccept-Language设置接受的语言A...转载 2021-12-29 20:04:54 · 688 阅读 · 0 评论 -
网络图片地址直接转Base64
最近懒得动,博客很久没更了。现在很多云服务,图片保存在网络中了。或者对接其他系统,资源也都是拿到的地址。由于我方服务器处理器内存磁盘空间都较小,想直接拿到网络图片地址的base64值。以前的方法是先把网络图片下载到服务器,然后转base64,耗费服务器资源。弃之!方法来源于网友,本博客只是收录:通用方法:/** * 将网络图片编码为base64 * * @param url * @return * @throws */ public static String原创 2021-12-29 10:46:58 · 4817 阅读 · 0 评论 -
getWriter() has already been called for this response 的解决办法
将 response.getWriter() 换成OutputStream out = response.getOutputStream() 这个就好了。但是换成这个将会对接口调用的返回值格式发生了改变,之前是返回对象,后来这个返回成json,不确定 response.setContentType(); 设置成什么...转载 2021-10-03 21:21:11 · 920 阅读 · 0 评论 -
swagger3 不能传header未解之谜
刚刚启用swagger3pom依赖只需要加上 springfox-boot-starter 相当简单 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version&g转载 2021-09-22 17:54:08 · 1664 阅读 · 0 评论 -
springboot——工具类中使用@Value给静态变量注入值
在SpringBoot中使用@value注解只能给普通变量注入值,不能直接给静态变量赋值,直接给静态变量赋值的话这些值会一直为null。解决方案:若要给静态变量赋值,可以使用set()方法,首先在对应的类上加上@Component注解,在set方法上使用value注解(注意set方法不是静态的,否则无法赋值),如下:@Componentpublic class Datahub { // Endpoint以Region: 华东1为例,其他Region请按实际情况填写 pri转载 2021-09-22 00:08:50 · 1463 阅读 · 0 评论 -
shrio 认证和授权的执行时机
1.doGetAuthenticationInfo执行时机如下当调用Subject currentUser = SecurityUtils.getSubject();currentUser.login(token);2.doGetAuthorizationInfo执行时机有三个,如下:1、subject.hasRole(“admin”) 或 subject.isPermitted(“admin”):自己去调用这个是否有什么角色或者是否有什么权限的时候;2、@RequiresRoles(“转载 2021-09-19 22:31:26 · 218 阅读 · 0 评论 -
Shiro 整合 ehcache 缓存报: Another CacheManager with same name ‘test‘ already exists in the same VM
Shiro 整合 ehcache 缓存报错:Factory method 'ehCacheCacheManager' threw exception; nested exception is net.sf.ehcache.CacheException: Another CacheManager with same name 'test' already exists in the same VM. Please provide unique names for each CacheManager in转载 2021-09-09 23:57:03 · 1066 阅读 · 0 评论