自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rocky的编程随记

其实坚持是犹豫着、退缩着、心猿意马着,但还在继续往前走。

  • 博客(55)
  • 资源 (8)
  • 收藏
  • 关注

原创 Java 将base64编码字符串转换为图片工具类

在一些前后端分离项目中,接口方需要前端把图片转换成base64编码字符串,和表单信息一起通过json接口提交。故在后端中,需要对前端传过来的bas64编码字符串转换成图片文件进行存储。

2024-01-03 10:19:34 622

原创 Java 获取两个日期之间的工作日工具类

一个简单的工具类,用于获取两个日期之间的工作日,由此可知工作日的天数和工作日的月号。

2024-01-02 10:32:11 431

原创 关于刷新nginx配置报nginx: [emerg] unknown directive错误的问题

unknown directive 是未知指令的意思,后面带着未知指令的内容是"锘?user"。由此判断,是nginx配置文件编码不正确的原因。 事实上,windows的记事本编辑文本后,会以ASCII码编码进行保存。这与nginx配置文件的utf8编码不符合。

2024-01-01 09:37:13 3917

原创 Windows Redis远程服务无法连接的问题

redis配置里面,默认只允许本地连接,没有远程连接,和mysql初始配置一样的问题。

2023-03-10 10:10:46 946

原创 Shiro 拓展Session写入Http请求头

Shiro是一个业界常用的java安全框,它默认的管理session的方式,是在客户端请求登录成功后,写入到cookie里面存储起来。笔者在维护一个前后端不分离的老系统,遇到这样的一个需求,在保留老系统原有的登录功能情况下,拓展PDA终端的登录方式,支持自定义请求头token来登录。那么着手拓展吧。shiro默认的Session管理,是通过DefaultWebSessionManager来实现的。

2023-01-16 17:33:10 411

原创 关于layui table 渲染数据不全的问题

昨晚同事反馈,界面表格显示数据数量共10条,但表格数据只显示了9条,让笔者排查下什么原因。

2023-01-12 09:50:26 1100

原创 Windows安装Mysql提示无法定位程序输入点fesetround于动态链接库的解决方案

Windows安装Mysql提示无法定位程序输入点fesetround于动态链接库的解决方案

2022-11-28 09:34:29 2214 1

原创 关于数据库存在数据记录,而Mybatis查询对象为NULL的问题记录

在JavaWeb系统中,开发者查询某表的行数据时,会根据其业务逻辑需要和提高SQL查询效率,不会全部字段数据都查询出来,而是有选择的只查询某些字段数据。本人最近常用的持久层框架是Mybaits,在使用过程中发现一个问题:数据库存在数据记录时,而我们查询的某几个字段为NULL时,其中定义的Mapper方法接收是一个对象的话,其对象不会实例化,是NULL值。 即是,当查询的字段有值时,Mybatis才会实例化对象,并进行set值。

2022-06-02 09:04:30 1041

原创 Java 策略模式与模板方法模式设计公用导入数据功能

前言在很多JavaWeb系统中,不同的业务模块都要求有Excel数据导入功能。由于不同的业务表的关系,对应Excel导入功能处理数据业务逻辑不一样,很多同学都是针对各自不同的业务表写不同的导入功能接口,导致多了一些例如下载Excel模板和导入Excel模板等重复性的工作。Java是面对对象的编程语言,在此,在下针对Excel数据导入的功能,剥离其共性与个性,封装了一个公用导入数据模块,让开发者根据专注于业务要点开发。...

2022-05-07 11:40:45 579 2

原创 Java BigDecimal工具类

前言由于在一些业务中,经常使用BigDecimal来做一些计算和百分比计算,为了减少每次手工做非空或者非零处理,故整理一个简单的工具类来使用,特此记录。代码import java.math.BigDecimal;import java.util.Arrays;/** * bigDecial 运算工具 * @author rocky * @date 2022/4/15 09:52 */public class BigDecimalUtils { private BigDecim

2022-04-15 09:53:38 818

原创 SpringBoot项目线程一直累加,没有进行回收的问题分析记录

通过jvm自带的jconsole观察到,该项目自从启动后,线程数量一直出于不断增加的趋势,没有线程回收的迹象。

2022-03-30 20:58:52 3774

原创 Spring 封装操作日志记录功能

另一种基于AOP的方式来进行记录操作日志的方案。这种方案可以做到对controller层的方法**零侵入性**,以及对需要进行操作日志记录的接口进行集中管理。

2021-12-18 23:57:00 492

原创 centOS7 安装nginx

准备工作gccgcc是Linux的编译器,可以编译 C、C++、Ada、Object C和Java等语言。后面安装nginx会用到,所以确定你的Linux服务器是否已经安装,一般来说都是默认安装的。查看gcc版本gcc -vgcc 安装命令yum -y install gccpcre和pcre-develnginx的http模块使用pcre来解析正则表达式。yum install -y pcre pcre-develzlibnginx使用zlib对http包的内容进行gz

2021-09-19 21:38:39 2374

原创 Java排序算法(一)——归并排序

介绍归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。其排序的速度仅次于快速排序,时间复杂度O(n log n)。Java代码实现/** * 归并排序 * @author rocky * @date 2021/9/10 10:34 */public cl

2021-09-10 13:52:53 5211 6

原创 BarcodeUtils条形码生成/解析工具类

介绍BarcodeUtils是基于Google提供的zxing二维码生成库而整合的一个生成或者解析条形码的工具类。BarcodeUtils采用遵循COC原则,在调用者未声明生成配置时,默认生成编码为UTF-8,尺寸为180*70的条形码,默认图片格式为png。引入依赖 <!--> google zxing <--> <dependency> <groupId>com.google.zxing</group

2021-06-03 15:42:45 974

原创 SpringBoot 国际化配置

前言前天来个新需求,由于客户群体分中国内地、香港和国外,产品那边需要根据客户地区语言来决定系统里面的文案表现。于是给这个SpringBoot项目做上国际化配置。实例代码第一步,在resources资源目录下,创建i18n目录,然后分别创建四个文件:messages.properties、messages_zh_CN.properties、messages_zh_TW.properties和messages_en_US.properties。第二步,在application.yml配置文件里面配置i

2021-04-13 23:15:33 608 2

原创 Java实例化对象过程

实例顺序父类静态对象,静态代码块子类静态对象,静态代码块父类非静态对象,非静态代码块父类构造函数子类非静态对象,非静态代码块子类构造函数实例代码/** * C 类 * @author rocky * @date 2021/3/31 22:11 */public class TestC { public TestC() { System.out.println("The class C constructor"); }}/** * D

2021-03-31 22:26:06 91

原创 Spring应用Api版本访问限制实现方案

需求场景Spring服务中,由于业务调整,部分API只针对高版本移动APP开放,低版本APP不允许访问,并提示用户升级应用。不排除在某些场景,部分API只在某个时间段开放,之后进行关闭。实现方案利用Spring AOP特性,自定义注解,作用于controller类或者类名下的请求方法,进行请求拦截,使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。实施过程第一步,自定义注解。package org.oriboy.mock.annotation;import jav

2021-03-18 23:03:55 273 2

原创 链式写法下,net.sf.cglib.beans.BeanCopier.copy NullPointerException的问题

前言由于MVC分层设计的理念,Java后端开发中,会经常面临各种DTO、DO、PO、VO的对象之间的转换。其中,pojo对象大部分字段名与字段类型一致,为了提供开发效率,避免过多收到set,一般开发者会封装属性拷贝工具类。 而我这边用的就是基于net.sf.cglib.beans.BeanCopier封装的工具类。在最近的使用过程中,发现net.sf.cglib.beans.BeanCopier存在一个问题:如果某类set方法采用了链式写法或者有返回值时,属性拷贝不能正常使用,而且还会发生NullPoin

2021-02-19 23:18:43 910 4

原创 SpringBoot 自定义切面只在controller生效的问题

前几天在一个SpringBoot项目中,封装一个基于注解的切面功能,在测试过程中,发现这个切面逻辑在Service层使用,无论如何都进入不了其中的业务逻辑,但是在Controller层是正常使用。在几番确认Aop配置无误的情况下,通过各种查找资料,最后找到了解决方法。这个项目的权限框架采用Shiro,在自定义实现AuthorizingRealm的UserRelam类中,给注入的Sevice类加上 @Lazy注解后,自定义切面在Service层也正常使用了。@Componentpublic class

2021-02-04 00:18:04 1861 5

原创 Java 优雅地分离验证代码与业务核心代码,减少过多的if-else(优化版)

在过去的一篇文章写过《Java 优雅地分离验证代码与业务核心代码,减少过多的if-else》,利用文章中提及的方式做业务验证,在后续的开发中,慢慢演化诞生了优化版。这个优化版方式,在原来的基础上,结合对Spring IOC容器托管的对象实例处理,达到一个业务验证代码多次复用,而且拓展更好的目的。废话不多说,看Demo。验证接口类:Condition.java/** * 业务验证接口 * @author rocky */public interface Condition<T> {

2021-02-03 01:37:10 560 3

原创 MacOS更新BigSur后git不可用的问题

原因MacOS系统更新,会卸载xcode(什么是xcode?)。解决方法在终端输入一下命令:xcode-select --install等待安装完毕后,在终端输入git,便可查看git已正常可用。

2021-01-05 06:26:38 1489

原创 SpringBoot配置MybatisPlus主动填充功能

前段时间,接手一个SpringBoot+MybatisPlus的项目,发现其中的实体类的创建时间和更新时间,都需要开发人员手动写入,十分不方便。之前浏览MybatisPlus的官方文档,MybatisPlus有提供关于主动填充的功能。但接手的项目的情况比较特殊,由于经过多批程序员接手的原因,有的实体类定义创建时间和修改时间为Date类型,有的则是LocalDateTime类型,于是经过研究,采用以下的方案来来进行兼容不同类型的时间类型,并达到主动填充的功能。首先,定义了两个基类:@Datapublic

2020-08-12 09:38:42 586

原创 windows nginx 安装以及使用

什么是nginxnginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。加上现在前后端分离的理念发展,大多数开发者都是拿来做Http反向代理服务器和静态资源服务器。下载和安装nginx去官网下载nginx。红色框的区域是nginx的稳定版本,由于用于开发的电脑系统为windows10,选择下载nginx/...

2019-09-23 19:59:54 201

原创 java corn表达式生成工具类

/** * corn表达式工具类 * @author rocky * @date 2019/9/16 0:30 */public class CronExpressionUtils { /** * 时间点转换成corn表达式 * 如:2019-04-28 00:30:30,表示定时任务会在2019-04-28 00:30:30执行 * @para...

2019-09-17 23:07:03 1606

原创 jfinal4.1 集成Quartz

第一步,下载Quartz。(http://www.quartz-scheduler.org/)quartz-2.3.0是最新的文档版本。第二步,解压文件,找到对应项目数据库的SQL脚本。SQL脚本位于 /src/org/quartz/impl/jdbcjobstore文件夹下,找到对应的脚本在数据库里面跑一下,会创建以quartz为开头的共7个数据库表。第三步,jfinal项目导入q...

2019-09-09 14:31:37 507

原创 java 求多个集合的交集工具类

交集,顾名思义,就是在两个以上的集合都出现过的元素组成的集合。以下代码就是在多个字符串的List集合中,获取都出现过的元素。/** * 获取在多个集合出现过的元素 * @param strArrayList 多个集合 * @return List<String> */ public static List<String> f...

2019-09-09 10:37:39 2518

原创 java 获取客户端真实IP工具类

随着nginx等工具兴起,单纯采用 HttpServletRequest.getRemoteHost()已经不能获取客户端的真实IP。以下是一个Java获取客户端真实IP工具类。import javax.servlet.http.HttpServletRequest;public class RequestUtil { public static String getRealIp(...

2019-06-19 17:08:54 1057

原创 jfinal emoji 表情存储失败解决方案

在阅读本文之前,先去了解下《在MySQL中,“utf8编码”并不是真正意义上的utf8》。看完上述文章后,有的同学开始有疑问了:明明看到表的编码已经设置为了utf8mb4,为什么还是保存不了emoji表情呢?让我们先了解下MySQL字符集方面的内容:MySQL字符集范围服务器层(server) > 数据库成(database) > 数据表(table) > 字段(colu...

2019-06-11 16:02:09 479

原创 Java设计模式之单例模式

Java设计模式之单例模式

2018-12-17 11:59:58 169

原创 Linux MySQL数据库备份shell脚本

我们部署的服务器常用是Linux系统。于是,为了保障数据安全,需要每隔一段时间,就对MySQL数据库的数据进行备份。MySQL下的mysqldump命令,能让我们有效的对想要的数据库或者表进行备份。但由于这个操作具有间隔性和重复性,我们不可能每次手动去执行mysqldump命令来进行数据库备份,这时候Linux的shell脚本和crontab定时任务就能突出作用了。shell脚本:#!/bin...

2018-12-05 12:06:27 1229

原创 windows MySQL数据库备份bat脚本

在windows服务器上,想要定时备份数据库数据,可采用windows的任务计划程序+数据库备份脚本组合。其中,MySQL数据库备份,起到关键作用是mysqldump。有关于mysqldump命令的用法,可以找MySQL的官方文档了解。以下主要描述脚本:echo 设置MySql数据库的连接信息set host=127.0.0.1set username=rootset password...

2018-11-29 00:30:39 2602 2

原创 MySQL 数据库引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建建,查询,更新和删除数据操作。 不同的存储引擎提供不同的存储机制索引技巧,锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL 的重要核心就是存储引擎,包括处理事物安全表的引擎和处理费事务安全表的引擎。可以针对不同的需求,对每一个表采用不同的存储...

2018-11-26 23:53:05 125

原创 在MySQL中,“utf8编码”并不是真正意义上的utf8

最近上线了新功能,昨晚一位同事告诉我,后台有报错,返回前端的信息是:java.sql.SQLException:Incorrect String value:'\xF0\x9F\x98\x83' for column 'name' at row1当时服务器是UTF-8编码,项目也是UTF-8编码,那么这个问题是如何产生的呢?我想起info发布一边文章《记住,永远不要在MySQL中使用“ut...

2018-11-17 13:57:27 428

原创 Java 优雅地分离验证代码与业务核心代码,减少过多的if-else

在平常项目开发中,不知道你们有没有遇上这么一个现象:业务模块在进行某个业务运算前, 都要先通过一些验证。随着业务扩展,这些验证越来越多,if-else的写法越来越显得麻烦,而且很多部分不能实现复用。基于为解决以上痛点,我用采用这样的写法,效果还不错。废话不多说,看Demo。验证接口类:Condition.java/** * 验证接口 * @param &amp;lt;T&amp;gt; */publ...

2018-11-16 14:24:22 1851 6

原创 Java zip打包工具类

先了解一下知识点:java.util.zipZipOutputStream:继承DeflaterOutputStream,该类实现了以ZIP文件格式写入文件的输出流过滤器。 包括对压缩和未压缩条目的支持。ZipEntry:此类用于表示ZIP文件条目。APIpublic void putNextEntry(ZipEntry e) :开始编写新的ZIP文件条目,并将流定位到条目数据的开...

2018-10-09 20:57:11 1342 3

翻译 A Microservice Architecture with Spring Boot and Spring Cloud(五)

测试 REST API最后,我们将测试我们的REST API。首先,一个简单的设置:private final String ROOT_URI = "http://localhost:8080";private FormAuthConfig formConfig = new FormAuthConfig("/login", "username", "password");...

2018-08-07 22:13:07 310

翻译 A Microservice Architecture with Spring Boot and Spring Cloud(四)

REST APIs我们需要两个相同设置的API:Config Client,Eureka,JPA,Web,和Security:dependency> groupId>org.springframework.cloudgroupId> artifactId>spring-cloud-starter-configartifactId>dependency>dependenc

2018-08-06 23:33:53 192

原创 QRCodeUtils使用文档

介绍QRCodeUtils是基于Google提供的zxing二维码生成库而整合的一个生成或者解析二维码的工具类。QRCodeUtils采用遵循COC原则,在调用者未声明生成配置时,默认生成编码为UTF-8,尺寸为300*300的二维码。当然,如果调用者调用了带有Logo的二维码生成方法,其中LOGO的尺寸为90*90。差点忘了说,生成的图片格式默认为PNG。使用方法将qrcode-...

2018-07-28 17:44:00 3730 15

原创 开源协议说明

开源协议说明作为一个时常在github和码云上混迹的程序猿,弄懂主流开源协议是很要必要的。要不然,在push自己代码到github或者码云的时候,在选择开源协议一栏中,不知道如何选择,这就尴尬了。Apache许可证一个由Apache软件基金会发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留版权和放弃权利的声明,但它不是一个反版权...

2018-06-14 20:45:37 1018

Java二维码生成/解析工具

QRCodeUtils使用文档详见博客https://blog.csdn.net/qq_24091555/article/details/81263472

2018-12-07

SVN使用教程文档

SVN使用教程文档,让你学会怎么用SVN。

2018-09-07

PxCook高效自动标注工具

PxCook高效自动标注工具,根据PSD文件,自动标注出间距PX值和样式设置,方便前端开发。

2018-06-30

angularjs开发下一代Web应用

用angularjs开发下一代Web应用

2017-07-27

SQLyog破解版

mySQL管理工具SQLyog破解版

2016-11-11

Android图标设计尺寸

Android图标设计尺寸

2016-11-11

999玫瑰c语言版

好看的玫瑰。

2014-12-01

空空如也

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

TA关注的人

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