
java
zhangxiaojun34901
java程序开发
展开
-
JSON格式报文加签/验签接口 保证顺序
JSON格式报文加签/验签接口概述最近项目中遇到针对接口数据加签/验签的需求,如何保证接受到的字符串的顺序和发送的顺序一致,只有这样才能保证验签成功。需要将JSON字符串转换成map对象,获取map中的业务数据,如果map存在嵌套,只针对第一层进行自然排序,然后进行签名验证。验证JSON转换工具工具fastJsongsonhutool目标JSON字符串转Map是否保证原来的顺序Map转JSON字符串是否保证原来的顺序代码package com.sedaier.tes原创 2022-05-24 21:02:03 · 2857 阅读 · 0 评论 -
记录一个简单需求总结
概述这几天收到一个需求,是模拟系统上线前,缴费量最多一天的用户操作,也就是模拟全天查询欠费+缴费,大概是140万左右用户数据,在一天内操作查询欠费+缴费.分析1.根据用户的类型,缴费的相关的接口有4套,每个接口要调用2次(查询欠费+根据欠费缴费),所以需要算上出参是16种报文格式,所以报文的解析是一个巨大的工作量,尤其是设计业务的报文,值得庆幸的是接口是restful的json格式.2.一天内根据各个时间段用户的缴费信息,模拟各个时间段内的缴费信息,比如以1分钟为间隔,从零点开始到零分结束,统原创 2022-04-23 15:28:23 · 267 阅读 · 0 评论 -
Jenkins容器化部署安装
Jenkins容器化部署安装资料DockerHubhttps://registry.hub.docker.com/_/jenkins修改镜像地址#docker内容器镜像下载路径more /etc/docker/daemon.json{"registry-mirrors": ["https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com"]}拉取镜像docker pull jenkins/jenkins:lts原创 2022-03-28 14:37:27 · 1007 阅读 · 0 评论 -
Mysql-8.0版本的docker安装
安装参考https://dev.mysql.com/doc/refman/8.0/en/docker-mysql-getting-started.htmlDocker操作#第一步docker pull mysql/mysql-server:8.0#第二步docker run -itd --name=mysql-blog-8.0 \--mount type=bind,src=/home/ubuntu/software/mysql_8.0.18/config/my.cnf,dst=/etc/my.原创 2022-02-14 10:32:01 · 715 阅读 · 0 评论 -
springboot四大组件之starter demo
swagger配置starter技术栈IDEIntelliJ IDEA 2018.2.7 x64编译打包maven 3.3.9结构└─sedaier-blog-starter ├─sedaier-blog-starter-package │ ├─swagger-spring-boot-stater │ | ├─src │ | │ ├─main │ | │ │ ├─java │ | │ │ │ └─原创 2022-01-24 19:42:13 · 340 阅读 · 0 评论 -
Ubuntu安装nacos的dockerfile
创建jdk1.8的dockerfile基础镜像ubuntu拉取docker pull ubuntudocker images下载Oracle_jdkjdk-8u251-linux-x64.tar.gz创建Dockerfile文件# Ubuntu with JDK 8# Author zxj# build a new image with basic centosFROM ubuntu# who is the authorMAINTAINER zxj# make a原创 2021-12-31 10:01:56 · 1093 阅读 · 0 评论 -
Springboot集成redis的简单DEMO
文章目录Springboot集成redis的简单DEMORedis安装下载解压安装命令java集成依赖代码结构代码RedisConfigCustomer.javaRedisValueSet.javaRedisUtils.javaApplicationStarter.java配置文件application.propertiesSpringboot集成redis的简单DEMORedis安装下载下载地址:https://redis.io/downloa解压删除不必要的文件安装命令#编译原创 2021-11-23 15:34:42 · 609 阅读 · 0 评论 -
利用hutool生成和验证JWT的示例
文章目录利用hutool生成和验证JWT的示例简介示例CodeJwtTest.javaJwtVerify.java利用hutool生成和验证JWT的示例简介利用hutool工具类生成json-web-tokenhutool-all在5.7以上的版本才支持jwt<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId>原创 2021-10-25 20:50:18 · 17610 阅读 · 10 评论 -
Linux命令学习(一)
springboot启动脚本#!/bin/bashnohup java -jar *.jar > /dev/null 2>&1 &关闭脚本#!/bin/bashps -ef |grep start-socket | grep test |grep -v grep | awk '{print $2}' | while read pid do kill -9 $piddone其他脚本#root以test用户执行脚本su - test <<EOF原创 2021-09-25 15:07:32 · 98 阅读 · 0 评论 -
SFTP服务
SFTP服务概念SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTPsftp采用的是ssh加密隧道,安装性方面较ftp强依赖的是系统自带的ssh服务原创 2021-08-07 09:28:12 · 2718 阅读 · 0 评论 -
java C盘文件统计工具
java C盘文件统计工具概述工作电脑用了3年多了,100G的C盘也快吃不消了,每次打开看到C盘红了,总要用清理工具清理一下子.不知道怎么最近清理工具清理了也没有什么效果,把temp下面的文件删除,没什么大作用.总是有一种冲动要去处理掉,已经影响工作了.乘着星期天写个工具,分析一下C盘的文件,看看那些是最近才增加的,能不能手动删除掉.版本介绍Maven-3.3.9JDK1.8目录结构com └─sedaier └─calcdir ├─service原创 2021-07-11 10:10:00 · 365 阅读 · 1 评论 -
gpg加密
shell命令#查看gpg安装版本和是否安装成功gpg --version#查看秘钥gpg --list-keys#保护秘钥的密码gpg -d -o 2020050801fk.txt 2020050801fk.txt.pgp#导入秘钥gpg --import key.pgp原创 2021-05-24 11:44:34 · 181 阅读 · 0 评论 -
Tuxedo服务中间件
文章目录Tuxedo概述第一节 环境安装环境linux版本换源安装jdk安装ftptuxedo版本安装目录第二节 java示例调用关系代码示例客户端Tuxedo服务查询服务/更新服务上传文件服务下载文件服务接口服务端配置文档详解tuxedo应用配置文档环境变量ubbconfig文件文件内容tuxeconfig文件ULOG文件java服务配置文档TJSconfig.xml文件jrepositoryxml约束文件stdout文件stderr文件access文件参考资料图书Oracle官网文档github示例文章原创 2021-03-27 13:23:52 · 5394 阅读 · 0 评论 -
JVM内存
文章目录JVM内存分类一分类二分类三垃圾回收虚拟机调优参数JVM内存JVM内存可以简单分为1.堆/栈。2.新生代/老年代/永久代3.堆/非堆分类一堆heap主要存放对象的地方,比如new关键字、数组引用的对象…栈stack主要用于存放局部变量的地方分类二新生代伊甸园:主要是刚刚创建的对象,还没有执行GC的时候的对象的存储空间。存活区:主要存放GC之后,没有被回收的对象的存储空间老年代老年代:主要是存放多次GC任然未被回收的对象。永久代永原创 2021-01-06 12:19:34 · 250 阅读 · 0 评论 -
设计模式之单例
单例单例是划分在创建型设计模式之中,全局唯一实例,在实际使用过程中出现比较多,例如文件加载后的缓存…实现方式1.饿汉式类加载的实时初始化,JVM保证了类加载时不会出现多线程的情况。publlic class{}2.饱汉式3.嵌套类...原创 2020-12-29 12:45:51 · 98 阅读 · 0 评论 -
数据库脚本生成POJO字段
文章目录PLSQ设置Templates脚本PLSQ打开Templates窗口创建脚本文件使用PLSQ设置Templates脚本PLSQ打开Templates窗口TOOLS-->Template List创建脚本文件右击【Custom】--【New Template】--输入名称--【OK】--获取javaBean字段SELECT 'private String ' || SUBSTR(REPLACE(INITCAP('a' || LOWER(T1.COLU原创 2020-11-28 13:27:51 · 196 阅读 · 0 评论 -
spring-framework-5.2.x源码导入eclipse笔记(一)
文章目录前提概要(踩坑宝典)Eclipse导入成功路径导入目录集成环境EclipseJDKAspectJKotlinGroovyTestNgGradleWindows安装JDK1.8where java命令Gradle添加阿里云导入步骤Demoapplication.xmlsrcPerson.javaSpringTest.java前提概要(踩坑宝典)由于工作中一直用Eclipse比较多,所以就想把Spring源码导入到Eclipse中玩玩,每天晚上下班回去搞一点.哪知各种报错一堆问题,有的问题提示都没有原创 2020-11-26 21:51:39 · 553 阅读 · 3 评论 -
java实参和形参调用释疑
总结1.方法形参 调用方法时,将实参变量值复制一份,传递给形参变量,实参引用类型的时候,是将引用类型的地址值传递给形参变量,指向堆内存中的地址,通过该地址可以修改堆内存中对象的属性值,所以java中是值传递,没有引用传递。2.局部变量的作用域,局部变量的作用域在方法体内,局部变量压栈,弹栈就销毁了。3.return 返回值 将方法作用域的值返回给调用方。示例代码结构源码ReferenceTest.javapackage com.sedaier.reference;/** * *原创 2020-09-01 18:24:51 · 546 阅读 · 0 评论 -
linux查询日志命令tail grep
man命令的使用man grepmore命令//more命令主要是用来分页| 管道符//前面的命令的输入作为后面命令的输入tail命令的使用tail -f 100 server.log //从后面100行开始动态输出tail -n 100 server.log //查询最后100行的日志head命令的使用head -n 100 server.log //查询开头100行cat命令的使用cat server.log //查看日志grep命令的使用cat server.l原创 2020-08-26 23:13:01 · 2604 阅读 · 0 评论 -
Spring源码编译
Spring源码导入Eclipse工具1.下载Spring源码gitee下载地址https://gitee.com/mirrors/Spring-Framework.git下载安装gradle查看Spring的编译的gradle的版本打开Spring-Framework\gradle\wrapper\gradle-wrapper.properties下载gradlehttps://services.gradle.org/distributions/gradle-6.5.1-bi原创 2020-08-26 21:02:25 · 124 阅读 · 0 评论 -
学习jar命令之后,我对jar包的概念有更深刻的认识
初学java的时候,一直到jar包的概念非常模糊,搜索各种解释都是说是一种压缩格式,就好像zip的压缩格式一样,正好解压缩工具可以解压jar包。也有疑惑为什么jar是一种压缩格式,那为什么不直接用zip就好了?所以应该还是不同的,搜索了很多文章关于jar包的,都解释的不够清晰,没有触发我的深刻印象。直到偶然看到jar命令之后,然后各种搜索关于jar命令的文章,终于让我找到了一丝曙光,下面就记录一下关于jar命令的用法,其实现在有很多的IDE工具,基本上不需要手工操作jar命令,所以也导致对jar包的陌原创 2020-08-26 20:08:25 · 331 阅读 · 0 评论 -
文件上传10kb的踩坑记
概要需要开发一个专门用来上传文件的组件图档功能,主要是用来上传各个工单的附件,上传到服务器ftp上。需求附件目录用excle维护,主要是维护附件名称和唯一编码和关联的业务编码,更新业务记录。上传的附件打包成zip格式。在ftp服务器上生成目录,存放上传的文件。功能使用commons-fileupload-1.3.1.jar和commons-io-2.4.jar两个组件,表单上传文件。现象描述上传文件的过程中,需要针对上传的文件在磁盘文件生成对应的temp文件,过程出现一些奇怪的问题,原创 2020-07-27 23:04:50 · 616 阅读 · 0 评论 -
Oracle数据库报表统计利器
文章目录数据报表统计神器case..when..rollup函数with..as..函数数据报表统计原来做报表的时候,经常头痛这个数据汇总,因为数据库是以行存储的,而我们经常统计的时候需要二个维度的统计,最后还要加一个合计,没有思路的时候很痛苦。神器case…when…oracle中的case…when…和decode都可以产生条件转换的效果,可以将数据按照一定条件去转换成0和1,这样在配合sum函数,可以将行数据汇总成列数据。rollup函数这个和group分组函数有点相同,是对结果集进行分组原创 2020-06-16 14:48:16 · 408 阅读 · 0 评论 -
post请求通过form表单的submit提交,url和请求体中都添加同样的参数,会怎么样?
文章目录关于POST请求参数后端出现截取现象分析概述事由复盘总结业务方面测试方面关于POST请求参数后端出现截取现象分析概述如果post请求通过form表单的submit提交,url和请求体中都添加同样的参数,会怎么样?事由生产过程中出现参数被截断的现象,一直定位不到问题。复盘1.测试demo<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!原创 2020-06-16 10:12:13 · 6342 阅读 · 0 评论 -
关于大数据量不确定性多算法业务开发的总结
概述企业需要根据样本采集回来的数据情况进行有条件的分析计算出一个基本值或者多个维度的多个基本值,然后用该基本值作参考来评估每一个数据的情况,进行业务活动.不确定性:样本数据准确性低样本数据的缺胳膊少腿的现象严重样本数据的多样性由于样本数据需要进过一定条件的筛选过滤和处理,客户.对样本地点进过什么样的处理没有直接概念,以及对数据的处理准确性有疑问数据量大样本数据达到5万左右,涉及的关联条件多,导致数据追踪困难.处理的数据达80万左右,数据清洗的规则复杂,不好监控多算法数原创 2020-06-06 12:47:38 · 463 阅读 · 0 评论 -
IDE的java运行环境
概述每次使用老版本eclipse新建项目的时候总是遇到一堆编译的问题,系统安装了jdk1.8版本,maven安装的3.3.9版本,springboot需要jdk1.8版本,各种版本每次新建一个项目时总是各种编译问题。原则上高级版本是向下兼容的。IDE的JRE环境eclipse自身的运行环境java的编译环境设置eclipse中添加很多版本的jdk,这些是全局设置,相当于一个默认设置。单个项目的个性化设置选中项目右键单击 build path或者快捷键alt+enter集成m原创 2020-05-26 21:59:24 · 841 阅读 · 0 评论 -
win7和win10安装odbc教程
安装目录简介1.解压缩文件 FastReport报表教程_ZXJ.zip2.解压并安装 instantclient-basic-nt-11.2.0.4.0.zip、instantclient-odbc-nt-11.2.0.4.0.zip选中两个文件同时解压,最后只生成了一个文件夹instantclient_11_2右键**【管理员身份安装】**3.进入32位odbc目录 C:\Windows\SysWOW64\odbcad32.exe单击运行odbcad32.exe选择【TN原创 2020-05-25 14:10:24 · 2172 阅读 · 0 评论 -
Idea特别好用的设置Quick Lists快捷功能
概述Quick Lists 主要功能是将你要设置的快捷操作放到一个快捷列表中,这样我们通过对这个快捷类别设置快捷键,这样就特别方便的调用快捷操作.1.不需要记太多的快捷键2.不需要去菜单栏点击快捷设置File–settings–Appearance & Behavior–Quick Lists设置快捷键crtl+Q使用方法...原创 2020-05-24 11:39:03 · 874 阅读 · 0 评论 -
Spring的代码入口ContextLoaderListener
1.监听器public class ContextLoaderListener extends ContextLoader implements ServletContextListenerContextLoaderListener 是spring-web中的类,实现了servlet-api中的接口ServletContextListener ,继承了spring-web中ContextL...原创 2020-03-26 23:47:22 · 693 阅读 · 0 评论 -
web应用web.xml部署描述符
概述容器:就是用来存放东西,spring容器就是用存放spring的bean的,可以简单理解为一个数组.上下文环境:某某上下,应该一用中可以有多个上下文.比如你自己可以简称为张三上下文,你的手 张三的手上下文,就是代表了一个特定的对象,里面放一下关于这个特定对象信息,凡是你想获取什么东西,都可以从对象的上下文中获取.一般web应用都需要一个 /webapp/WEB-INF/web.xml的文...原创 2020-03-24 09:27:24 · 606 阅读 · 0 评论 -
jdk之String源码
概述String类型是java语言中最常用的类型,有很多特性。不可继承性不可改变性引用类型常量池String的字符串常量,是在编译器生成,维护到常量池中;运行时方法区中。String a = "Hello";//常量池String b = "World";//常量池String c = "HelloWorld";//常量池String d = "Hello" + "Worl...原创 2020-03-18 19:37:36 · 203 阅读 · 0 评论 -
StackOverFlowError和OutOfMemoryError的原因和处理方法
对于现在的我而言,虚拟机就好像黑盒子一样,无法深入查看。只会简单的通过jconsole等工具查看一下从我接触的最能直接可见反馈虚拟机的异常的就只有StackOverFlowError和OutOfMemeryError这两种异常。有可能会问,虚拟机的内存不是动态分配自动回收的吗?是的,这只是简化了程序员写代码的复杂性,不需要每次都考虑对象的回收和内存控制,但是一样会存在内存崩溃的情况。...原创 2020-02-25 10:37:52 · 1745 阅读 · 0 评论 -
关于大数据量或者存储过程或者业务逻辑过于复杂的解决方案
1.大数据量的清洗存储过程和定时任务对大数据量的清洗,过程过于复杂涉及到的中间变量过多,计算和统计过多,导致整个过程执行时间过长。所以通过数据准备,通过一个中间表来抽取过程中的中间变量和逻辑变量,预先抽取一些数据,减轻整个数据清洗过程的压力。这些存储过程一定考虑到执行的效率问题,索引的使用;尽量避免在where条件里使用函数,有一些条件能抽取到中间表中,尽量抽取出来。1.1)数据准备1....原创 2020-02-15 21:28:40 · 1665 阅读 · 0 评论 -
dockerfile简单练手,创建基于jdk1.7的tomcat7
使用的基础镜像FROM ubuntu创建目录RUN mkdir -p /docker_home/local把当前目录下的jdk文件夹添加到镜像ADD tomcat7 /docker_home/local/tomcat7ADD java17 /docker_home/local/java17ENV JAVA_HOME /docker_home/local/java17/ENV CAT...原创 2020-01-12 09:24:40 · 495 阅读 · 0 评论 -
Mybatis中返回类型非vo时,字段值为Null时,会自动过滤
一、场景:程序中需要用List<Map>接受返回值,返回值Map中value存在null空值,在遍历时获取key时,返回null,相当于不存在key,直接抛出了nullpointexception…二、概述:1)如果返回值是List<Map>类型,Mybatis会默认自动过滤掉value为null的字段。2)Mybatis在默认情况下,结果集解析生成Map,如果va...原创 2020-01-12 08:45:32 · 2569 阅读 · 0 评论 -
java学习路径图
自己的java学习路径总结原创 2019-11-14 19:30:15 · 181 阅读 · 0 评论 -
xshell等服务器查看日志文件软件
1.xshell查看日志参考把服务器的ip设置名称,这样多服务,多应用和集群就好分辨对应的日志服务器2.日志最重要,要养成任何错误,或者有问题,先看日志的习惯.并且在java代码中要时刻牢记日志,否则上线之后服务器排查问题就很难,本地一样会很麻烦.3.try…catch…最好要输出一下日志 e.printStackTrace();否则会出现问题,引起日志不能打印,尤其是service中的try...原创 2019-10-25 10:04:48 · 816 阅读 · 0 评论 -
logger.debug,logger.info,logger.warn,logger.error,logger.fatal日志级别问题
1.正常服务器上线,会把日志设置成info或者error的级别,这个只是日志级别控制日志类的输出2.logger.debug < logger.info < logger.warn < logger.error < logger.fatal 设置成高等级的级别,低等级的就展示不了,需要调整日志级别 例如 设置成info级别,那么所有用debug的日志就输出不了,如果用sy...原创 2019-10-25 09:59:25 · 1424 阅读 · 0 评论 -
关于java中斜杠和反斜杠的记忆
记忆\和/经常容易混淆,所以提供我的记忆方法java中(反斜杠有特殊意义).首先:java开发经常用到提示快捷键就是 alt+/ 一般都是记忆成alt+斜杠,所以反斜杠就好推了....原创 2019-09-27 09:15:31 · 547 阅读 · 0 评论 -
设计模式--工厂模式
1.工厂模式:创建型,主要用来生产对象。简单工厂模式:简单粗暴。工厂方法模式:和工具类一样,方便简单,耦合性高。抽象工厂模式:低耦合。2.示例类型package test.javase.demo.pattern;public class Animal { private String color;//颜色 private String sex;//公母...原创 2019-09-27 19:21:42 · 186 阅读 · 0 评论