自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(194)
  • 论坛 (1)
  • 收藏
  • 关注

原创 js构建form表单数据

背景后端接口:参数为Person,Person成员变量包含Other对象@RequestMapping("post")public Object post(Person person) { return JsonResult.success(person);}public class Person implements Serializable { private Other other; private String name; private Integer

2020-11-22 14:27:51 31 1

原创 mvn可选参数

参数描述-pl选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔)-am和-pl连用,同时构建指定模块依赖的模块-amd和-pl连用,同时构建依赖于指定模块的模块-rf从指定的模块开始构建-N不递归子模块这里说的依赖包含两层含义:父子关系依赖关系例1:从指定的模块开始构建mvn clean package -DskipTests -Dcheckstyle.skip -rf apm-weba...

2020-11-19 21:33:41 11

原创 github克隆项目太慢

以克隆skywalking为例1. 找到克隆的项目的地址https://github.com/apache/skywalking.git2. 修改地址中的域名原克隆域名https://github.com修改为https://github.com.cnpmjs.org即https://github.com/apache/skywalking.git 改为https://github.com.cnpmjs.org/apache/skywalking.git3. 使用修改后的地址进行克

2020-11-18 22:30:14 27

原创 ‘telnet‘ 不是内部或外部命令,也不是可运行的程序

1.打开系统的控制面板2. 在控制面板中找到程序,点进去3. 点击启用或关闭Windows功能4. 打开Telnet Client开关,点确定

2020-11-16 21:10:50 8

原创 Java位运算及用途

&:与,且性质:两个位都是1时,结果是1,否则为0用途:清零:任意整数和整数0做与运算,所有位都是0,得出的结果是0取出指定位:任意位和位1做与运算,结果是不变,例如x=10101110取出低4位,只需要和y=00001111做与运算,就可以得出z=00001110判断奇偶:a&1 == 0等价于a % 2 == 0,二进制中,能表示基数,那么二进制的最后一位一定是1。将最后一位变为0:num & (num - 1)会将num的二进制表示的最后一位的1变成0判断一个数

2020-11-08 15:25:52 25

原创 shell脚本:standard_init_linux.go:211: exec user process caused “no such file or directory“

如果是因为执行脚本出现这个,可以将脚本中的头改写一下#!/bin/bash# 将#!/bin/bash改写为#!/bin/sh#!/bin/sh

2020-08-21 11:35:58 215

原创 Java签名

public class SignUtils { public static void main(String[] args) throws Exception { TreeMap<String, String> params = new TreeMap<>(); params.put("account", "13469967652"); params.put("timestamp", "1595235495256");

2020-08-06 13:31:54 65

原创 NodeJs构造Mybatis动态SQL

通过下面的sql查询所有的列select TABLE_NAME,GROUP_CONCAT(COLUMN_NAME) from information_schema.columns where TABLE_SCHEMA = '数据库名' and table_name = '表名' group by TABLE_NAME;点击这里选择NodeJs运行脚本const str = 'thing_model_template_id,template_number,template_name,device_ty

2020-08-05 17:33:56 191

原创 linux安装nodejs环境

下载和安装wget https://nodejs.org/dist/v12.18.2/node-v12.18.2-linux-x64.tar.xzmv node-v12.18.2-linux-x64.tar.xz /opt/cd /opt/tar -xvf node-v12.18.2-linux-x64.tar.xz/opt/node-v12.18.2-linux-x64/bin./node执行node命令时,报错了,看着是缺少了运行环境,报错信息如下,分两步解决解决/usr/lib..

2020-07-05 22:23:48 96

原创 Java文件生成zip文件

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.Inpu

2020-07-05 17:14:00 158

原创 windows安装nodejs环境

windows安装NodeJs安装安装Node环境时,刚开始我使用zip压缩包,但是各种配置都不能正常使用,可能是首次安装,有些东西少配置了,于是我下载msi的安装包进行安装,其中有一步是勾选必要的tools,我没有勾选,勾选也没问题。选择安装路径后,自动安装,Node会自动在环境变量的path中添加安装的目录,这样就可以在任意地方使用node命令,并且Node也会在用户变量的path中自动添加npm的路径,在任意地方使用npm命令,实际上npm的用户变量删掉也能使用。安装好后,在cmd中执行n

2020-07-05 16:37:37 72

原创 查看maven可用的环境变量

mvn help:system输出的内容包括系统属性和环境变量,这些环境变量都可以在pom文件中直接引用(至少大部分可以用,毕竟不会把这些都尝试一下)===============================================================================System Properties===============================================================================

2020-05-22 16:02:53 126

原创 maven-compiler-plugin编译错误Fatal Error: Unable to find package java.lang in classpath or bootclasspath

使用maven-compiler-plugin添加了一些环境变量,如下代码。发现在bootclasspath中,使用分号分割了两个变量,于是报错了,如下图。<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version>

2020-05-22 15:52:44 133

原创 maven-compiler-plugin编译错误:程序包javax.crypto.spec不存在

java的jre/lib包下的jar比jdk/lib的多,其中包括rt.jar、jce.jar等。在使用mvn命令编译时,使用的是jre的rt.jar的运行环境,并且maven的环境变量仅有rt.jar的编译依赖,如下图。但是javax.crypto.spec在jce.jar,因此需要在编译插件中加入这个编译依赖,否则会报错,如下图。maven-compiler-plugin配置如下<plugin> <groupId>org.apache.maven.plugins

2020-05-22 15:44:33 150

原创 maven-javadoc-plugin打包错误:未知标记:date

错误信息在使用maven-javadoc-plugin打包的过程时,要区分jdk1.7和jdk1.8,因为maven-javadoc-plugin插件在jdk1.8的时候要加一个配置项,否则生成javadoc时,会报错插件正确配置方式一:写死配置<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</arti

2020-05-22 14:54:33 752

原创 Maven打包可运行jar包插件(maven-jar-plugin、maven-dependency-plugin)

可运行jar包插件,可以使用maven-assembly-plugin实现自定义打包,也可以使用maven-jar-plugin、maven-dependency-plugin,maven-assembly-plugin实际上也是使用jar和dependency,只是assembly可以自定义打包的内容。<plugin> <groupId>org.apache.m...

2020-04-22 13:05:47 167

原创 调试RocketMQ源码

拷贝namesrv、broker的配置文件到指定目录,为了避免直接修改代码中的配置文件。1.1 在F盘创建rocketmq文件夹,创建三个子文件夹conf、logs、store,我的代码中多了dev data的文件夹1.2 将distribution源码conf目录下的broker.conf、logback_broker.xml、logback_namesrv.xml拷贝到新建的conf目...

2020-04-04 15:18:47 87

原创 git忽略提交文件

找到git的全局配置文件,一般是在C:\Users\lenovo下,文件名:.gitconfig,注:lenovo是我的用户名在.gitconfig中添加[core]及以下代码[user] name = yangzhen email = p7_1994@163.com[credential] helper = manager[core] excludesfile = C:\...

2020-04-03 19:52:50 80

原创 bat遍历文件内容

@echo offsetlocal enabledelayedexpansionrem 遍历所有行for /f "tokens=*" %%a in ('type pom.xml') do ( echo %%a )rem 遍历所有行,默认以空格分隔,只取第一列for /f %%a in ('type pom.xml') do ( echo %%a )rem 遍历所有行,以.分隔,只...

2020-03-19 09:57:31 426

原创 JVM锁优化

自旋锁和自适应自旋自旋锁是当多个线程并行访问共享数据时,用忙循环让后面请求锁的线程处于等待状态,当自旋多次后仍然获取不到锁,再用传统的方式将线程挂起。忙循环就是用循环让线程等待,忙循环也叫自旋。在Java6之后,如果有线程刚通过自旋获得了锁,并且线程正在运行,那么JVM会认为自旋获取锁的命中率高,其他线程的自旋次数可能会增多。如果某个锁通过自旋获得的次数少,JVM可能会省略掉自旋获取锁,直接...

2020-03-13 15:54:10 85

原创 Java工厂方法设计模式及实现(枚举实现工厂方法设计模式)

简介工厂方法设计模式是一种创建对象的模式,这种模式将创建对象的责任转移到工厂中。工厂方法包含3部分内容:抽象接口、子类实现、工厂类。一般情况下工厂方法是通过传参来判断创建哪个子类的对象。当然,也可以通过枚举的方式实现工厂方法设计模式。传统工厂方法设计模式如下代码,通过CarFactory#createCar接收Class参数,创建子类实例public interface Car {}...

2020-03-09 22:41:32 397

原创 SpringMVC国际化i18n配置

国际化是什么?国际化是开发支持多语言和数据格式的技术。其实就是根据外部特征动态的将本地化资源响应给用户。本地化资源配置文件在SpringMVC中实现国际化,是将每一个地区的语言保存在配置文件中,配置的内容是key/value对,key是字符串,value可以是字符串,也可以是其他任意类型的对象。一个配置文件表示一种语言,如果要同时支持中文和英文,那么就需要提供两个属性文件,并且中英文内容相...

2020-03-05 12:46:13 84

原创 Spring数据校验(LocalValidatorFactoryBean和MethodValidationPostProcessor的区别/@Valid和@Validated的区别)

JSR标准和Spring校验框架Java的JSR-303标准的数据校验的核心接口是javax.validation.Validator,该接口根据目标对象中标注的校验注解进行数据校验,并得到校验结果。Spring也有自己的校验框架,同时支持JSR-303标准的校验框架。Spring的DataBinder在进行数据绑定时,同时调用校验框架完成数据校验工作。Spring的校验框架包是org.sp...

2020-02-26 20:48:50 1026

原创 maven-surefire-plugin单元测试插件(Maven跳过单元测试)

maven编译时有两种跳过单元测试的方法cmd命令行跳过单元测试cmd命令有两种参数跳过单元测试mvn clean install -Dmaven.test.skip=true不编译不执行测试用例mvn clean install -DskipTests编译但不执行测试用例pom插件跳过单元测试在pom中加入下面的插件,在idea或者cmd下直接执行mvn clean ...

2020-02-25 19:26:08 241

原创 Java生成Postman表单数据

DataBuilder详见这里/** * @param clazz * @param prefix 前缀 */public static void getFormData(Class clazz, String prefix) { Object o = DataBuilder.newDataByField(clazz); String data = JSON.toJSO...

2020-02-14 16:31:31 120

原创 Maven 无效的目标发行版: 1.8

背景个人maven的settings.xml配置的jdk版本是1.8,而公司配置的jdk版本是1.7,我修改本地配置如下复制settings.xml为settings-copy.xml,修改jdk版本为jdk7在idea设置Settings和Project Structure的jdk版本为jdk7在idea设置maven的settings的路径为settings-copy.xml执行c...

2020-02-10 16:20:38 191

原创 windows同时安装不同版本的jdk

背景我首先安装了jdk8,但是公司的maven配置的是jdk7,为了避免已有的项目出现编译环境的问题,因此又安装了jdk7。出现的问题修改环境变量JAVA_HOME,指向jdk7的路径,但是在cmd中执行java -version显示的版本仍然是jdk8的信息。原因官方会默认把java.exe、javaw.exe、javaws.exe复制到C:\Windows\System32目录下...

2020-02-10 15:52:49 126 1

原创 时间相关的统计工具

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class StatisticsUtils { /** * 日期格式:yyyy-MM-dd HH:mm:ss */ public static final String ...

2020-01-09 10:27:30 97

原创 Java浅拷贝和深拷贝的区别

浅拷贝和深拷贝的区别浅拷贝和深拷贝都是复制对象,复制出来的对象,它们的内存地址都是重新分配的,区别在于浅拷贝对象中的引用类型和原对象中的引用类型指向同一个内存地址,而深拷贝对象中的引用类型的内存地址是重新分配的,也就是说,浅拷贝对象和原对象的引用类型的数据是同步的,深拷贝对象和原对象的引用类型的数据是互不干扰的。注意: 这里说的是引用类型!对于对象中直接定义的基本数据类型及其包装类型、Stri...

2019-12-31 17:01:59 163 1

原创 MySQL多个left join on关联条件的顺序

注意:下面的案例特别重要!请重视!SQL有点长,但确实是干货!结论如果存在多个left join on,请注意on后面的条件与哪个表关联。这一条统计的SQL很重要!例如表A,B,C,A left join B on A.x = B.x left join C on A.x = C.x,B和C的都要和A建立关联,B和C之间是没有任何数据上的关系。但是 如果把A.x = C.x改成B.x = C....

2019-12-18 11:49:14 2404 1

原创 Java四舍五入保留小数点后几位

(double) + Math.round 返回double类型// 案例:四舍五入保留小数点后1位double d1 = 123.456;double d2 = 654.321;double v1 = (double) Math.round(d1 * 10) / 10;double v2 = (double) Math.round(d2 * 10) / 10;System.out...

2019-11-27 19:45:30 475

原创 .bat批处理Maven实战

把此文件放在有maven工程的文件夹下执行@echo offsetlocal enabledelayedexpansionrem 批处理文件中的命令是自上而下执行的,因此要注意方法的定义顺序或者控制方法的调用rem 关闭回显每行代码,@echo offrem setlocal enabledelayedexpansion 设置扩展本地环境变量延迟,并且变量要用一对叹号“!!”括起来(注...

2019-11-20 15:22:43 121

原创 Maven镜像mirror和仓库repository的关系

Maven镜像mirror是为了解决依赖下载的速度问题,仓库repository是使用指定的仓库下载依赖。maven下载依赖的流程以编译工程下载依赖为例:localRepository本地仓库-》nexus私服(如果有)-》中央仓库具体如下:maven去settings配置的localRepository本地仓库查找依赖本地仓库没有,根据pom文件或者settings配置的reposi...

2019-11-19 14:56:49 799

原创 Maven发布工程到私服的配置

maven的settings.xml配置<server> <id>releases-id</id> <username>admin</username> <password>admin123</password> </server> <server> <...

2019-11-18 19:49:26 107

原创 Java反射常用的方法和使用技巧

SuperClass.isAssignableFrom(Child.class)clazz.newInstance();一定要有无参构造函数Modifier.isFinal(field.getModifiers()),Modifier用来判断修饰符Field#get方法返回的是基本数据类型的包装类型isPrimitive判断基本数据类型instantof判断对象是否是某个classge...

2019-11-14 20:17:07 95

原创 Mybatis jdbcType=DATE和jdbcType=TIMESTAMP的坑

实体类中的时间为Date类型,mapper中按时间查询时不指定javaType,Mybatis会视参数为Timestamp类型,时间参数被格式化为yyyy-MM-dd HH:mm:sspublic class UserOnline implements Serializable { private Long userId; // 在线时间,格式为yyyy-MM-dd HH:mm:ss ...

2019-11-08 13:42:51 1088

原创 Lambda表达式

Lambda表达式是什么?实现了匿名接口的匿名方法的表达式,它有参数列表、函数主体、返回类型,也可能抛出异常。Lambda的组成Lambda表达式有三个部分参数列表箭头 -> 把参数列表与Lambda主体分隔开Lambda主体,表达式就是Lambda的返回值,可以是任意类型Lambda如何理解?任意接口有且只有一个方法(不包括默认方法),并且方法参数列表匹配Lambda参...

2019-11-05 20:40:06 91

原创 java.net.SocketException:Connection reset

背景HttpClient远程调用HTTPS的API时,报错java.net.SocketException:Connection reset原因Jdk版本差异导致的异常。在初始化SSLContext sslContext = SSLContext.getInstance("TLS");时,由于Jdk1.7默认的是TLS的协议版本是v1.0,而Jdk1.8协议版本是v1.2,所以出现了这种...

2019-11-01 16:00:52 737

原创 commons.cli命令行交互

public static void main(String[] args) throws ParseException { String[] p = {"-h"}; parse(p, "test");}public static void parse(String[] args, String cmdName) throws ParseException { Op...

2019-10-22 18:59:49 116

原创 Java各种数据类型序列化

对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序;从字节流创建对象的相反的过程称为反序列化。可以理解为序列化是将数据转换成byte[]的表示方式。对象序列化:首先要实现Serializable接口使用ObjectOutputStream序列化,返回byte[],使用ObjectInputStream反序列化byte[]为对象fast...

2019-10-18 15:19:41 788

空空如也

p7+的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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