自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

_古井心

每天进步一点点

  • 博客(69)
  • 资源 (1)
  • 收藏
  • 关注

原创 Jenkins部署Java web应用极简指南

Jenkins尝鲜指南安装Jenkins配置Jenkins配置访问路径和端口号配置Jenkins用户配置全局工具(**系统管理->全局工具配置**)配置插件(**系统管理->插件管理**中安装以下插件)配置nginx转发:新建任务参数化构建使用参数指定分支构建原理简析Jenkins作为CI/CD方面的流行技术,同时还相对(k8s之流)易于安装,不自己整一整实在是可惜。本文介绍jenkins从零到部署一个简单java web应用的过程,力求简单优雅。如果想要跟随本文操作学习,准备如下:一个

2020-09-02 21:33:38 1165

原创 锟斤拷?UTF-8与GBK互转,为什么会乱码?

作为一名程序员,肯定有被乱码困扰的时候,真到了百思不得其解的时候,就会觉得:英文程序员真幸福。但其实只要明白编码之间的转换规律,其实乱码so easy~我们知道,计算机存储数据都是2进制,就是0和1,那么这么多的字符就都需要有自己对应的0和1组成的序列,计算机将需要存储的字符转换成它们对应的01序列,然后就可以储存在电脑里了。比如我们可以定义用8位2进制表示一个字符,“00...

2016-10-18 21:50:08 165124 16

原创 java中的file.encoding属性到底由什么决定?

首先先上一段代码:public class PropertiesTest { public static void main(String[] args) { System.out.println("file.encoding:"+System.getProperty("file.encoding")); System.out.println("sun.jnu.encoding:"+Sy...

2016-10-17 21:39:42 28206 6

原创 Invalid contextPath ‘/xxx‘: must match the start of requestPath: ‘//xxx/yyy‘

记录一个升级spring boot 版本从2.1升级到2.6之后的错误:java.lang.IllegalArgumentException: Invalid contextPath '/admin': must match the start of requestPath: '//admin/init' at org.springframework.http.server.DefaultRequestPath.validateContextPath(DefaultRequestPath.java:81

2021-12-19 15:30:26 4062

原创 Not annotated parameter overrides @NonNullApi parameter

现象:idea报错,就下面这样Not annotated parameter overrides @NonNullApi parameter类似的还有这个:Not annotated parameter overrides @NotNull parameter这个警告看起来是让你加上@NotNull注解,但是加了根本没用!!!虽然只是警告 但是强迫症很难受!!!解决方式提示信息不是很友好实际上使用“javax.annotation.Nonnull”注解可以解决import java

2021-12-09 16:51:05 30054 7

原创 使用itext7统计PDF文件中的字数

使用itext7实现pdf文件中的字数统计

2021-12-02 11:40:57 881

原创 Mybatis-plus的Wrapper中使用MySQL的json函数

使用Wrapper的apply方法如下代码,假设UserEntity中有一个roles字段是json数组,我们传入参数中有一个role字段,要筛选出是这个role的用户。apply的用法如下,先是一个字符串,字符串中类似sl4j记录日志,这里使用{0}占位一个参数,后面的参数放这个占的这个坑中。 QueryWrapper<UserEntity> queryWrapper = new QueryWrapper<UserEntity>()

2021-08-13 15:27:25 5061

原创 IDEA EasyApi导出接口到Yapi返回的数据格式未解析问题

IDEA中的EasyApi插件简直神器,直接导出api信息到Yapi,再也不用写接口了本人在适用过程中遇到一点问题,一时脑子没反应过来,给同样没反应过来的兄弟带个路。我在导出接口的时候,出现返回的类型解析不出来。因为是使用自己定义的响应体,类似这样:package com.jswdwsx.common.response;import java.io.Serializable;/** * 返回封装基本对象 */ @Datapublic class BaseResponse implem

2021-08-13 15:02:49 3946 2

原创 Linux中tar命令解压缩常见用法

可用选项列表c – create an archive file.x – extract an archive file.v – show the progress of the archive file.f – filename of the archive file.t – viewing the content of the archive file.j – filter archive through bzip2.z – filter archive through gzip.r

2021-07-06 17:45:50 433

原创 MySQL时区

MySQL时区GMT和UTC查看操作系统时区MySQL中与时区相关的变量MySQL Server系统时区MySQL Server当前时区每个session的时区查看时区配置MySQL时区的几种表示方式'SYSTEM'UTC偏移量表示已命名的时区GMT和UTCGMT:Greenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间,这是英国格林尼治当地时间,这个地方的当地时间过去被当成世界标准的时间。UT:Universal Time 世界时。根据原子钟计算出来的时间

2021-06-24 16:23:57 470 1

原创 MySQL日期时间函数完全参考

Mysql5.7时间日期函数完全参考获取当前时间获取日期和时间从时间中提取部分信息计算时间转换格式化附录获取当前时间获取日期和时间NOW(),CURRENT_TIMESTAMP()CURRENT_TIMESTAMPLOCALTIME()LOCALTIMELOCALTIMESTAMPLOCALTIMESTAMP()根据上下文,返回’YYYY-MM-DD hh:mm:ss’ 或者YYYYMMDDhhmmss格式的日期时间mysql> SELECT NOW(); -

2021-06-24 11:42:49 1092 1

原创 IDEA中POM 项目parent中的dependencyManagement中的依赖版本号报红

现象:IDEA中作为管理依赖的parent项目的pom文件中,在dependencyManagement中的dependency,如果指定的版本在本地仓库不存在,并且在子项目中也未引用的时候,会报红。疑惑:只是引用了很常见的依赖,并且版本官网可查,为什么会报红,难道下载不下来吗。分析:后经验证,其实这是一个展示问题,并不影响运行。不知道这是一个bug还是IDEA有意为之,也许是建议我们不使用就不要引入吧,但是个人觉得报红有点过,报黄或灰就够了。推测应该是根据是否找到相应jar包来判断是否报红,但由于并

2021-06-18 13:04:00 2179

原创 windows使用docker安装redis并使用docker执行redis-cli

这里写自定义目录标题安装Windows Docker Desktop下载Redis镜像启动下载的Redis镜像的容器Redis-cli连接Redis安装Windows Docker Desktop下载并安装,docker hub登录之类不赘述下载Redis镜像去docker hub寻找中意的镜像我中意的是6.2.4-alpine,目前最新,镜像体积小。命令如下:docker pull redis:6.2.4-alpine启动下载的Redis镜像的容器命令如下:docker run -v

2021-06-11 15:36:36 4250 2

原创 Parse Error: User json. Contact support.

在使用fork链接gitlab server的时候报了这么一个错:半天摸不着头脑,结果居然是因为没有设置头像然后就好了:设置头像后就添加成功,我的心情如同此头像!参考:https://github.com.cnpmjs.org/fork-dev/TrackerWin/issues/1149...

2021-06-10 16:07:46 404

原创 java中Future的实现原理

文章目录执行结果是如何通过Future返回的Callable是如何被执行的总结Callable任务的执行流程执行结果是如何通过Future返回的上代码:package com.jswdwsx;import java.util.concurrent.Executors;import java.util.concurrent.Future;public class FutureStudy { public static void main(String[] args) {

2021-05-07 02:31:26 3216 1

原创 java只有一种创建Thread的方式!

在java中有很多方式创建线程,比较被广泛接收的是两种方式的说法:package com.jswdwsx;public class ThreadStudy { public static void main(String[] args) { Thread thread1 = new Thread(new MyTask()); thread1.start(); Thread thread2 = new MyThread(); th

2021-05-07 01:10:46 143

原创 docker中ENTRYPOINT 和 CMD的重点用法和区别

首先上官方文档:https://docs.docker.com/engine/reference/builder/#cmd如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。在Dockerfile中,只能有一个ENTRYPOINT指令,如果有多个ENTRYPOINT指令则以最后一个为准。如果镜像中设定了ENTRYPOINT,那么命令中的CMD会作为参数追加到ENTRYPOINT中。docker

2020-09-17 14:36:03 401

原创 Sourcetree中使用cherry-pick

cherry pick是个非常灵活实用的git 命令,Sourcetree是常用的git GUI。那么如何在Sourcetree中使用cherry pick命令呢。遴选遴选是一个汉语词语,拼音是lín xuǎn,一指选拔(人才),二泛指挑选。选中你要cherry pick的提交,右键就会有“遴选”选项了,点击就可以把选定提交应用到HEAD了...

2020-09-14 16:56:23 14574 1

原创 git stash 部分文件

开发过程中经常会需要stash(贮藏)部分文件的场景,无奈sourcetree并不支持这种操作,gitkranken神器是可以的,但是现在收费了。所以只能自己动手命令行搞起来了。参考了一下官方文档:git stash命令有如下用法git stash list [<options>]git stash show [<stash>]git stash drop [-q|--quiet] [<stash>]git stash ( pop | apply ) [--i

2020-08-26 11:23:12 45481 5

原创 jenkins使用SCM流水线脚本无法指定git分支

使用jikens的SCM流水线时,配合git parameter插件拉取指定分支打包时,似乎Jenkins有个bug,导致无法正确读取参数,如图之后发现,美元符号前必须有其他内容才能读取到配置,于是改成如下这样,终于能读到了,由于Jenkins这里支持多种写法,选择一最长的写法前面就可以加上别的内容了。...

2020-08-03 21:07:32 5578 7

原创 无域名纯ip配置nginx,实现代理路径带前缀的jenkins

现在公司一般都会用jenkins做发布,自己就也想玩玩。于是配置好了,但是遇到不少坑,记录以下,先看实现效果:http://111.231.101.154/jenkins/坑一:官网推荐docker安装尝鲜,本来我也是这么玩的,但是docker安装jenkins的问题就是,jenkins装在容器中,那么容器中如何操作docker。两个方案,一个是操作外部docker(docker out of docker,在docker容器中操作外部docker),一个是操作兄弟容器中的docker(docker

2020-07-30 14:49:03 3663

原创 纯配置方式使用durid的数据库密码加密

主要是使用durid中的ConfigFilter实现,官方文档可参考这里,但是官方文档里没有介绍纯配置方式的用法,我自己试了下,总结了纯配置的用法。第一步:生成密码和密钥这一步可以使用官方文档里的办法,也可以使用一个我自己写的类,当然本质都是调用官方jar包中的方法:package com.example.encryption;import com.alibaba.druid.filter.config.ConfigTools;public class Password { publi

2020-07-29 09:57:31 828

原创 正则匹配在XX之后的写法

例如:获取邮箱中@之后的部分(?<=@)\S+$解释:\S 匹配字母、数字、下划线+ 匹配前面的子表达式一次或多次(?=@) 这是重点,匹配一个位置,这个位置在“@”前面$ 匹配字符串结尾所以整个表达式的含义就是匹配一个字符串,这个字符串“@”的下一位开头,字符串是非空白字符组成,字符串的结尾是这个字符串的结尾。这篇文章的兄弟篇《正则匹配在XX之前的写法》点这里测试正则表达式...

2020-07-04 16:31:54 7991 2

原创 正则匹配在XX之前的写法

(?=@) 这是重点,匹配一个位置,这个位置在“@”前面例如:获取邮箱中@之前的部分^\w+(?=@)解释:^ 匹配字符串开头\w 匹配字母、数字、下划线+ 匹配前面的子表达式一次或多次...

2020-07-04 16:13:53 7844

原创 feign客户端HTTP状态码为204时 响应体被忽略

在使用 spring-cloud Greenwich.SR3 时遇到一个问题。因为服务端HTTP状态码按照rest风格设计,所以update一类操作的http状态码返回204。HttpStatus.NO_CONTENT(204, "No Content")*但是部分接口还是希望返回修改后的数据。所以返回体其实是有内容的return ResponseEntity(data, HttpSta...

2019-12-18 16:53:38 2747

原创 使用com.vladmihalcea的hibernate-types报错:No Dialect mapping for JDBC type: 1111

mysql新版新推了的JSON类型但是Hibernate官方并没有提供相关支持于是Hibernate大佬Vlad Mihalcea自己写了个开源库hibernate-types但是我在使用过程中遇到了问题:报错 org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111报错很简单,有一个所谓的JDBC类型居...

2019-12-04 11:28:37 2597

原创 只需20分钟,免费搭建你的个人网站!

先剧透一波,文章涉及以下内容:GitHub Pages 提供免费的网页托管Jekyll(中文)提供静态页面生成Minimal Mistakes 一个很????的 Jekyll 主题mm-github-pages-starter 基于 Minimal Mistakes 主题的快速启动示例点击查看笔者的根据以上技术搭建的个人网站:https://javaisgood.github.io/开...

2019-11-19 13:48:27 3449 5

原创 kotlin-maven-plugin简单介绍,noarg,allopen

<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apach...

2019-11-11 18:39:32 6219 2

原创 Hibernate @OneToOne FetchType.LAZY不生效

假设你有两个实体类,有一对一的关联关系,如下:@Entity(name = "PostDetails")@Table(name = "post_details")public class PostDetails { @Id @GeneratedValue private Long id; @Column(name = "created_on") ...

2019-11-11 16:24:12 4008 3

原创 Try-with-resources in Kotlin

java中有个很好用的语法Try-with-resourceskotlin中有没有类似的呢?当然有啊!在kotlin stdlib包中有个use方法,用法如下:OutputStreamWriter(r.getOutputStream()).use { // by `it` value you can get your OutputStreamWriter it.write(...

2019-09-27 19:13:10 2942 2

原创 null是你的朋友,不是一个错误(译Null is your friend, not a mistake)

哎,本来想翻译一波的,搜了下发现有人翻译过了,真是遗憾。Roman Elizarov原文简书网友译文这篇文章是身为Team Lead for Kotlin libraries的Roman Elizarov写的。不同网上火热的“十亿美元的错误”,作者认为Null是一个不错的发明,很多情况下我们需要Null来表示值的空缺。那么NPE为何成为噩梦。相信每一个java程序员都遇到过,担心入参是...

2019-09-27 16:00:04 404

原创 kotlin+Spring Boot + JPA的一些tips

最近开始使用kotlin开发基于spring boot的web应用,踩了不少坑,也有不少思考,简单记录下。这篇算是一个开坑汇总,里面的每个主题都放到单独的文章里来讨论。1. maven插件maven插件主要是三个点:-Xjsr305=strict、no-arg、all-open2.@Entity注解的类需不需要data classdata class是kotlin中的特殊类,是final类...

2019-09-26 18:18:51 626

原创 自定义spring对LocalDateTime的序列化/反序列化方式

spring支持自定义各种类型的JsonSerializer/JsonDeserializer,配置方式很简单,如下:import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializerimport org.springframework.boot.autoconfigure.jackson.Jackson2Obje...

2019-09-20 15:04:38 2845

原创 JPA的Specification中使用mysql5.7之后的JSON相关函数

JpaSpecificationExecutor中有很多方法可以接收Specification对象。下面是一个根据查询参数生成Specification的方法,kotlin版。这里用mysql中的“JSON_CONTAINS”方法举例,其他方法可以举一反三。

2019-09-16 13:17:49 2642 4

原创 Kotlin抛出UndeclaredThrowableException而不是原始异常

在Kotlin中你可能会遇到这种情况,莫名其妙catch到一个UndeclaredThrowableException,可是自己抛出的明明是另一个异常!如果想要拿到原来的异常,这里先介绍三种解决办法,之后详解原理。获取原始异常的三种方式第一种最直接粗暴,捕获UndeclaredThrowableException,通过UndeclaredThrowableException的getUnde...

2019-09-11 20:19:35 1341 1

原创 feign自定义ErrorDecoder 错误时返回统一的错误对象

曾经的接口开发,大家都习惯返回200状态码,然后在响应体中使用以下形式{ code:200 data:{ name:zhangsan age:18 } msg:msg}这时候feign的接收对象可以使用该对象。现在接口都追求rest风格,接口在正常流程时会返回请求的数据,错误时会返回错误的描述信息。此时不同的情况下httpcode也不能统一是200那么正常和异常的情况就...

2019-08-29 18:12:28 18038 2

原创 feign get方法使用对象参数

feign get方法使用对象参数feign中和controller中不一样的地方controller中可以get方法使用对象参数无需任何注解,可默认绑定到对象@ApiOperation("分页列表")@GetMapping("/paged")fun getPaged(query: UserQuery): ResponseEntity<Page<UserVO>> ...

2019-08-29 17:45:18 4907

原创 spring+kotlin项目注入失败

在kotlin+spring项目中遇到一个问题,有时候在service中注入的repository为null。后来看了下发现都是因为类里用到了@Async和@Transactional注解,并且调用的方法没有用“open”关键字修饰。这里把报空指针的方法加上“open”就行。具体为什么会这样,因为@Async和@Transactional使用动态代理实现,所以spring注入是注入到代理对象...

2019-07-29 15:46:35 1417

原创 jdk1.8 HashMap红黑树插入修正源码分析

这里是目录预备知识点红黑树红黑树的插入策略红黑树的插入修正的4种情况红黑树的插入修正的4种方式源码分析预备知识点进入代码分析之前简要介绍相关知识点,推荐一个视频,讲得很好:youtube:https://www.youtube.com/watch?v=5IBxA-bZZH8bilibili:https://www.bilibili.com/video/av14050857红黑树红黑...

2019-06-23 01:22:43 395

原创 java中synchronized用法

修饰方法修饰非静态的方法// 代码块1public synchronized void method(){ // todo}这种情况下是对象锁tips:在定义接口方法时不能使用synchronized关键字。修饰一个静态的方法// 代码块2public synchronized static void method() { // todo}这种情况下是类锁,...

2019-05-14 16:48:31 187

spring-framework-3.2.17.RELEASE-dist.zip

spring-framework-3.2.17.RELEASE-dist.zip

2016-10-16

空空如也

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

TA关注的人

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