自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (6)
  • 收藏
  • 关注

原创 API横向越权修复之ID加密

横向越权一般发生在应用系统做了【认证】,但没有做【鉴权】的情况下,也是最常见的漏洞之一。请求接口时一般都会要求携带TOKEN,无论是JWT还是RSA的,至少不会是裸奔。这里的TOKEN就是【认证】信息,接口通过TOKEN去判断当前用户是否有请求接口的权限。但如果接口中没有做【鉴权】则会发生横向越权,。建立完善的权限策略是控制越权最合适的方法,但很多系统已经维护了很多年,里面的功能很庞大,往里面集成权限策略难度较大,需要去定义角色,梳理业务数据与角色的关系,然后开发权限管理功能,再挨个功能去添加鉴权;

2024-02-01 11:04:53 1174

原创 AOP 实现@Async异步事务管理

AOP+编程式事务现实异步事务控制

2023-06-27 23:30:00 637

原创 ELK 多用户登录

创建用户,选择对应的角色,这样这个用户就能查询对应的索引日志了,未授权的日志查询不到数据。角色需额外添加一个系统角色:kibana_user,不然登录会有问题。提示:这是kibana从ES查询数据是身份认证需要,与kibana用户不一样,配置一个就行。将elastic-stack-ca.p12、以及yml里的配置同步到ES集群的所有节点,先创建角色,例如:devops-group,并设置该角色可以查询哪些索引集合。使用elastic账号(管理员)登录,密码是之前设置的。用于配置kibana账号角色。

2023-06-25 15:02:58 1148

原创 springboot+JTA简单实现多数据源事务

JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。

2023-06-25 12:00:31 609

原创 springboot添加健康检查

springboot添加健康检查

2023-02-18 23:45:00 1148

原创 springboot集成redisson

springboot集成redisson。

2023-02-18 19:35:52 134 1

原创 PostgreSql 初体验

postgresql

2022-12-09 20:00:00 158

原创 Springboot+ES : ElasticsearchRepository

【代码】Springboot+ES : ElasticsearchRepository。

2022-10-08 16:50:45 686

原创 注解方式实现logback日志脱敏

logback日志脱敏

2022-09-21 19:58:21 1544 1

原创 springboot + easyRules 搭建规则引擎服务

规则引擎

2022-09-16 11:57:44 2558 2

原创 mybatis xml : 前言中不允许有内容。

网上基本的说法是Mapper.xml文件编码问题,改utf-8-bom,还是utf-8什么的。但是我的配置文件检查了N次没问题。其实是mybatis的路径配置问题引起的:改成如下:

2022-07-04 21:30:00 715

原创 springboot集成nacos配置中心

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-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/mav

2022-03-02 15:58:56 481

原创 ERROR: Please set the JAVA_HOME variable in your environment

nacos 启动报错在centos7.9上部署nacos是报错如下:which: no javac in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin/java/jdk1.8.0_181/bin:/usr/bin/java/jdk1.8.0_181/jre/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-7.b13.el7.

2022-02-24 11:08:08 1534

原创 filebeat+elk搭建日志平台采集K8s容器应用日志

filebeat+elk

2021-12-31 18:46:16 3220

原创 Springboot + Retryable

1. pom.xml <dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> </dependency> <dependency> <groupId>org.

2021-12-10 08:55:01 590

原创 openresty + keepalived 实现 nginx高可用

1.前期准备两台Linux服务器(以下以Centos7为例)OpenResty安装包(1.19.9.1)KeepAlived安装包(2.2.4)2.安装OpenResty(两台)2.1 yum 依赖库安装yum updateyum install gccyum install readline-devel pcre-devel openssl-devel2.2 编译安装openrestytar xzvf ngx_openresty-1.19.9.1.tar.gz # 解

2021-11-11 10:12:15 2852

原创 Rabbitmq集成与使用

1.Springboot集成rabbitmqpom.xml 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <version>2.2.5.RELEASE</version>

2021-11-03 14:23:50 1647

原创 jasypt 敏感信息加密

敏感信息加密一般在信息安全要求比较高的项目中,一些敏感信息会被要求进行加密。如数据库、中间件等用户名密码。1.pom.xml <!-- 敏感信息加密 --> <!-- https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter --> <dependency> <groupId&

2021-11-01 20:04:13 176

原创 Swagger与YApi

在线接口文档管理工具1. swaggerpom.xml <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</versi

2021-11-01 19:31:25 2095

原创 JAVA生成随机验证码图片

1.controller /** * 获取随机数验证码图片 * * @param request HttpServletRequest * @param response HttpServletResponse */ @GetMapping(value = "/getRandomCode" ,produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public void getRan

2021-11-01 19:10:10 926 1

原创 分布式任务调度平台 XXL-JOB

xxl-jobXXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。https://gitee.com/xuxueli0323/xxl-job?utm_source=alading&utm_campaign=repoxxl-job-executor 任务执行器,主要实现定时任务业务逻辑;xxl-job-admin 任务调度平台,独立部署,可视化界面配置调度逻辑;1.xxl-job执行器pom

2021-09-30 16:21:59 671 3

原创 Linux单机通过docker搭建redis集群

拉取redis镜像docker pull redis创建redis节点容器docker create --name redis-node01 --net host -v /docker/redis/node1:/data redis --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379docker create --name redis-node02 --net host -v /docker/redi

2021-08-16 19:52:14 200

原创 阿里笔试题(二)

1.采用统一hash算法计算号码hash值,创建hash表存储hash值与手机号码的对应关系;2.必然存在hash冲突,采用类似于hashMap类似的处理方式,hash表(hash值,index【入库时该hash值已有个数】,对应手机号码);3.查询时传入hash值与index;4.可采取redis做缓存,查询过的数据存入redis,以hash值为key,index值为field,注册信息json为value;5.对field设置过期时间2-3天,根据实际变动频率以及数量调整。6.对db中的数据.

2021-05-31 20:42:02 86

原创 阿里笔试题(一)

自己写的答题思路,做个记录。反正是没过的,千万别当真,大概率是个反例。/** * * @Title: searchKeywordInText * @Description: 查询关键字索引 * @param: @param text * @param: @param keywords * @param: @return * @return: Map<String,String> * @throws *.

2021-05-31 20:38:02 137

原创 Mysql datetime 多1秒

1.问题今天新增一个需求,要根据datetime字段匹配几张表里的记录值。结果发现总是有几条记录莫名其妙多1秒钟,开始以为是数据来源那边有问题,经过一系列排查发现数据到插入前都是对的…2.原因度娘说是mysql保存日期时间值时会对毫秒级的精度进行调整,四舍五入。这么一说就清楚了呀。3.解决方案 Calendar c = Calendar.getInstance(); c.setTime(date); c.set(Calendar.MILLISECOND, 0); re

2021-05-20 11:58:13 767 1

原创 Cannot enhance @Configuration bean definition ‘dataSourceConfig‘ since its singleton instanc .......

1.背景Springboot+mybatis配置多数据源时启动提示以下信息:[ restartedMain] o.s.c.a.ConfigurationClassPostProcessor : Cannot enhance @Configuration bean definition 'dataSourceConfig' since its singleton instance has been created too early. The typical cause is a non-static

2021-04-19 08:50:54 2145

原创 Mysql 导出数据到 MongoDB 笔记

1.准备Navicat Premium 12.1之前用的是12.0,好像不支持mongo,换成12.1就支持了。2.从mysql中导出之前试过导出为JSON和CSV,都不太理想。这里我们选择导出为Excel。如果只是要导出部分字段或部分行,可以先做查询,再导出数据。下一步都第4步,要勾选包含列的标题完成导出。3.导入到mongodb后面一直下一步即可!...

2021-04-13 10:26:01 162

原创 WebSocket 实现消息推送

1.背景应用场景为前端需要实时获取后端数据。之前的做法是JS定时器发送Ajax请求,获取后端数据,这样的话需要一直请求后端,有点浪费资源。使用websocket可以实现后端向前端推送消息,实现双工通信。2.实现2.1 pom依赖 <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId

2021-04-09 11:31:14 2403

原创 通信服务端性能测试笔记

1. 指标概念序号名称含义1性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。2负载测试通过逐渐增加负载,测试系统各项指标变化情况,属于性能测试的一种,关注的是动态趋势。3压力测试通过测试来确定系统的瓶颈与临界值,以此来获得系统能提供的最大服务级别,属于性能测试的一种,关注的是静态值。4吞吐量(TPS)Transactions Per Second; 每秒处理事务数;5并发数系统同时处理的事务数

2021-04-07 14:39:37 404

原创 微软正版资源看这里

安利一个国内微软正版资源平台,别再去什么华军软件…下乱七八糟的操作系统或者是软件了,捆绑一堆的流氓软件。这里下的都是贼纯净的正版软件及系统,不带任何捆绑。戳这里office、project、visio、.Net Framework ,win10 。...

2021-03-22 10:52:29 126

原创 Springboot + Mybatis + 多数据源配置

pom.xml其他依赖省略了,这里只举出数据源相关的。 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <dependenc

2021-03-20 17:00:51 99

原创 JAVA UDP server回发消息失败!

最近遇到一个JAVA UDP通信的问题,说起来很简单,但是相信肯定还有和我一样踩坑的,这里记录以下。场景如下:client: 硬件机器上的4G模块server: 部署在公司服务器上的通信模块程序client主动上传数据包后,server保存client的ip与端口,等到server需要主动读取时,通过保存的ip/port给client发送读取命令,client收到后响应server。问题描述server 接收client上传的数据没问题,溜的一批。但下发读取消息时,客户端一直收不到消息。

2021-03-12 15:28:54 375

原创 Smart-Socket搭建UDP通信服务

1.smart-socket《官方文档》smart-socket是一款国产开源的 Java AIO 通信框架,支持 TCP、UDP、SSL/TLS 。高性能、高并发、低延迟、低能耗代码量极少,可读性强。核心代码不到 1500 行,工程结构、包层次清晰。学习门槛低,二次开发只需实现 2 个接口(Protocol、MessageProcessor),具备通信开发经验的几乎无学习成本。良好的线程模型、内存模型设计,保障服务高效稳定的运行。支持自定义插件,并已提供了丰富地插件,包括:SSL/TLS通

2021-03-11 11:25:20 2061

原创 Springboot 定时任务

pom.xml添加quartz依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId></dependency>Application.java添加@EnableScheduling注解@SpringBootApplication@EnableSc.

2021-03-10 10:40:08 242

原创 Springboot jar 获取程序目录

Springboot项目打成jar包后,需要获取同目录下额外的资源,可以使用以下方法获取路径:System.getProperty("user.dir");jar包路径:D:/gyiot/socket_service.jar输出为:D:/gyiot

2021-03-10 10:22:29 304

原创 Springboot + logback 分级别输出日志

application.yml# 日志框架logging: config: classpath:logback-spring.xml file: path: loglogback-spring.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--日志文件主目录:程序目录--> <property resource="a.

2021-03-10 10:05:29 543

原创 mysql 优化笔记

1.引擎选择特性InnoDBMyISAMMEMORY事物安全支持不支持不支持对外建的支持支持不支持不支持存储限制64TB有有空间使用高低低内存使用高低高插入数据的速度低高高从mysql5.5.5开始,InnoDB是mysql表的默认引擎,因为目前使用关系型数据库的一般都需要考虑事务安全,因此InnoDB是最常用的。其次是MyISAM,如果表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作

2021-02-26 14:53:08 103

原创 Centos 安装 JDK1.8

1. jdk下载http://apache.apooloo.cn/#/down/f1b54d77df533af9d9de55cf3f4e2cea2. 上传到服务器上并解压tar zxvf jdk-xxxx-linux-x64.tar.gz3. 重命名安装目录(非必须)为了配置时简单点,可以重命名下解压目录mv jdk1.8.0_202 jdk4. 配置环境变量JAVA_HOME=/home/java/jdkPATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$J

2021-01-22 08:46:23 84

原创 JAVA 从List中remove元素

// 错误 int size = list.size(); for(int i = 0; i < size; i++){ String item = list.get(i); list.remove(item); } // 正确 int size = list.size(); for(int i = size - 1; i >= 0; i--){ Str..

2021-01-08 10:03:41 163

原创 JAVA HashMap知识点梳理

HashHash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。根据散列值作为地址存放数据,这种转换是一种压缩映射,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。查找关键字数据(如K)的时候,若结构中存在和关键字相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。我们称这个对应关系f为散列函数(Hash function),按这个事件建立的表为散列表。HashMap原理图JD

2021-01-07 17:31:36 122

TCP/UDP性能测试小工具

用于测试TCP与UDP通信程序性能,模拟并发客户端与服务端通信,自动统计各项指标。

2021-04-07

Colors.rar

颜色提取器,免安装,前端开发神器,一键提取目标颜色

2021-02-26

radmin.rar

局域网远程桌面软件Radmin,客户端以及服务端;类似于TeamViewer和向日葵,但是是局域网内使用

2020-12-04

TCP&UDPTool.rar

TCP&UDP通信调试工具,支持客户端和服务端模式,支持收发16进制数据,适用于物联网等通讯应用调试以及服务器端口通讯测试等。

2020-11-09

禅道开源未加密版Windows64集成安装包

禅道开源未加密版Windows64集成安装包,加密版本的安装时候总会遇到缺少各种dll,以及端口启动失败的原因,未加密版本基本没这些问题

2020-09-25

各类简历模板.zip

各个软件方向的就业简历模板,满足各种需求,开发岗、产品经理、项目经理、JAVA、前端、架构以及其他行业。

2020-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除