5 清泉影月

尚未进行身份认证

我要认证

清泉影月,取自“明月松间照,清泉石上流”

等级
TA的排名 2w+

整合 jasypt 加密到 springboot 工程

前言:springboot 工程涉及到一些重要的连接,涉密连接明文传参隐患很大,所以需要配置加密, jasypt 是目前最好用的加密工具。1. 官网https://github.com/ulisesbocchio/jasypt-spring-boottips: 官网目前是 3.0.3,如果你是jdk 1.8 版本可能会有问题,这个后面再说。2. maven 依赖 <dependency> <groupId>com.github.uli

2020-10-21 12:13:15

linux 搭建 FTP 避坑指南

前言:有很多博客写过 linux 搭建 FTP,很遗憾,照着搭建出了不少故障,所以这里记录一下关键的坑怎么处理。1.需求和环境需求:基于 linux 搭建一个FTP,保证用户只能访问自有目录,可以正常进行读写操作。linux 版本: centos 72.安装 FTPyum install -y vsftpd3.启动 FTP 服务service vsftpd start其他可能用到的命令停止服务:service vsftpd stop重启服务:service vsftpd rest

2020-09-24 20:43:31

logback + MDC 搭建 springboot 的日志系统

前言:日志的作用是什么?调试,问题定位,数据分析。日志很重要,要保证统一的样式,分级别,请求可追溯。1. springboot 自带的logback如果你是 ieda 开发工具,并且是maven工程,可以点开 pom 文件,右键 -> maven -> Show Dependencies ,可以查看整个项目的依赖关系,其中有 logback2.配置 logback.xml 文件这个文件配置好放在 resources 目录下即可(不需要其他任何地方的配置),工程可自动识别,仔细阅读文

2020-09-14 20:21:22

linux下创建用户赋予root权限

前言:最近一直在折腾linux的脚本,用来固化一些常用的功能,本次记录创建用户赋予权限。1.创建用户useradd 和 adduser 都行eg,useradd deploy2.创建或者修改密码passwd deploy然后会提示输入密码,连续输入两次即可,一般密码要求:字母大小写、特殊字符、数字、长度大于8,不能和用户相关等要求。如果你要是想把创建密码写到脚本固化,可以这么写echo "密码" | passwd --stdin deploy3.赋予root权限修改 /etc

2020-09-09 21:00:12

linux查看版本信息

前言:有时候需要给linux装环境依赖,版本就显得很重要了,所以这里记录一下方便以后查看。1. 输入"uname -a ",可显示电脑以及操作系统的相关信息2. 输入"cat /proc/version",说明正在运行的内核版本3. 输入"cat /etc/issue", 显示的是发行版本信息4. lsb_release -a(如果命令找不到,不建议安装 lsb,依赖包太多)...

2020-09-08 20:42:39

linux的cat命令

前言:以前经常用 cat 进行文件的追加,正好今天有时间把cat命令好好梳理一下。1.使用实例追加 config 文件内容到 bashfile 文件cat config >> bashfile把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里cat -n textfile1 > textfile2清空 /etc/test.txt 文档内容cat /dev/null > /etc/test.txt2.参数说明-n 或

2020-09-08 20:22:55

linux删除乱码文件

前言:前段时间有一台新机器需要部署环境,结果文件 rz 进去以后发现中文名字乱码,想删掉,但是发现 rm 不管用,但是转念一想,既然linux能管理到该文件,那么肯定有文件的唯一标识可以进行操作的(这种唯一标识在linux中称为 i 节点),于是网上查找一番,这里记录一下。1 .查找文件i节点ls -i 或者 ll -i 都行,最前面的那个号码就是 i 节点标识例如(这里以正常文件来演示):2.删除find . -inum 679052 -exec rm {} -rf \;再查看一下

2020-09-08 20:13:16

ClassFinal 对 java 代码进行混淆和加密

前言:最近公司突然对代码混淆关注起来了,不混淆不能发版,在网上找了下混淆工具,主流的 java 混淆是 proguard,但是不太好用,后来就发现一个好用的 classfinal 工具包,本质上 classfinal 不是做混淆的,是对生成的 jar 或者 war 重新加密生成一个新的包,但是你想啊,加密比混淆更高端,肯定是满足要求的。1.简介ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避

2020-09-08 19:53:02

mybatis 传入Integer类型0时导致参数丢失

场景:数据表里面有一个整型字段 type,参数为 0 或者 1,使用 mybatis 的 xml 文件写 sql 时发现传参为0时不起作用。1.部分代码 <if test="userType != null and userType != ''"> AND s.`type` = #{userType} </if>大家一般也都是上面的写法,但是 userType 被声明为 Integer传参为 0 时,userType

2020-08-26 17:18:19

tar 打包隐藏文件

前言:先说一下遇到的场景:前段时间在配合做 DevOps,组内有块代码是 php 的,需要用 tar 命令打包归档上传到 nexus 库,后来发现解压出来的包居然缺失了隐藏文件(配置文件),查了一下资料解决了,这里记录一下。1. tar 命令常规用法-c 创建新的档案文件-C 指定到要解压到的目录。注意:该目录必须存在-f 指定打包的文件名。在f之后要立即接打包文件名!不能再加参数!-x 解压-O 将文件解压到标准输出-p 使用原文件的原来属性-P 创建归档文件,使用绝对路径-t 列出档

2020-08-03 10:19:13

linux安装指定版本jdk

前言:安装jdk,无论在 windows 还是linux都是一套流程,下载对应包 -> 安装jdk -> 配置系统环境 -> 校验最近赶着活动在某里云搞了一个入门的云主机,搭建一下基础环境,以后可以开发小工具自己用。1.下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html找到系统对应的版本,例如 linux x64,这里同一个版本包的类型不同,不同的包安装方式会有差异,推荐

2020-07-31 17:46:38

Java 策略模式(strategy)

前言:问:啥是“策略”答:不同情况不同处理呗问:那不就是 if…else 或者 switch 吗答:本质上差不多吧问:总有区别的吧,“策略”听起来感觉高级些答:那肯定啊问:到底啥区别答:高级的东西用起来舒服,价格也贵问:…,可以不用吗答:可以啊,又没人逼你问:那么豪横吗,来一套试试1.策略模式举例“策略”就如前言所说,这里举一个常见的栗子,我们去超市买东西,结账的时候会被各种询问,收银妹子:您是会员吗鄙人:不是收银妹子:会员九五折,只需要登记一下手机号就行了呢,要不要开通一下

2020-06-19 10:52:17

mysql 使用 like 模糊查询时通配符处理

前言:mysql 的like查询有两个通配符 % 和 _,这两个在查询的时候会把不需要的结果查询出来,怎么处理?1.问题描述模糊查询语句如下:select name from table where name like '%字符串%';一般我们会用查询的字符串替换后可以进行模糊查询,如果字符串中有 % 或 _,怎么办?2.分析问题下划线 _ 在 mysql 中是匹配任意一个字符的意思(可为空),百分号 % 是匹配任意长度的字符串(可为空),直接传到 mysql 语句中不会被当做要查询字符串的

2020-06-12 12:57:05

Java 深浅拷贝和原型模式

前言:本来是在学习原型模式的,后来发现它就是一个拷贝,然后就去研究了下深浅拷贝以及它们的实现,这里不说大道理,尽量通俗易懂地把它们都讲清楚。1.引入问:java 对象拷贝的意义何在?为啥要拷贝?答:因为懒,不想实例化一个,所以拷贝生成一个新的对象现实实例:本科学习的时候有很多课程是讲 ppt 进行考核的,有些人忙(其实嘛…)没做 ppt,所以就会拷贝一份室友(室长)的;A室友拷贝了一份 ppt 就放在室友电脑里面同一个目录下,改了些个人信息,并把 ppt 链接的素材裁剪了一番;B室友把所有 pp

2020-06-12 11:15:59

vim 上下翻动查找字符串

需求描述:在 linux 下用 vim 命令查找字符串,可能有很多个满足条件,怎么定位上一个或者下一个?解决之道:首先进入 vim 后进入 normal 模式,键入如下命令后按 Enter 键进行查找字符串:/搜索字符串查找下一个按 n,往上找上一个按 N...

2020-06-09 19:55:13

Java 设计模式之桥接模式

前言:Bridge 模式以前看过,看到最后发现这就是一个继承嘛,居然还能搞个模式出来,不科学啊,当时没弄清楚,后来就没关注了;今天突然热血来潮,决定搞清楚这个模式,仔细研究后发现以前我被坑了。1.为啥被坑好多博主写过 bridge 模式,不少写的都有问题,有些是核心思想写对了,但是举例写错了;有些画了一堆图把人绕晕了,最后完全看不懂。当然还有一个原因是平时用的少,很少人去研究,写博客纯粹就是抄别人的,别人错他也错,然后看的人似是而非,糊里糊涂。2.bridge核心思想核心:解耦对象描述,让对象可

2020-06-01 21:11:56

java:随机生成符合要求的复杂密码

前言:密码要求:大写字符、小写字符、数字、特殊符号,必须要包含,密码长度在 8-20 位。设计结果:输入密码长度,返回符合要求的随机密码。1.需求拆分需求可分为两点:四种字符必须包含长度 8-20 位2.逻辑设计声明一个 list把 4 种字符每种随机选一个放进 list根据密码长度要求再随机选择4种字符放进listlist 重新排序list 遍历组合成字符串输出逻辑设计 2 满足需求 1;逻辑设计 1、3、4满足需求23.代码设计首先写 4 个函数用于生成 4

2020-05-25 18:03:09

IDEA 重复启动springboot 项目报端口被占用的错

前言:描述一下状况:IDEA 启动了 springboot 程序,想重启,但是关闭上次程序的时候选择了 disconnect,虽然运行窗口关了,但是程序却再也起不起来了。1.报错信息Description:Web server failed to start. Port xxxx was already in use.Action:Identify and stop the process that's listening on port 8888 or configure this app

2020-05-25 14:16:06

防止 crontab 定时任务重复执行

前言:crontab 定时任务很好使用,它的定时是很强硬的,直接跟系统时间打交道,不会去管程序本身执行是否需要时间。举个栗子:一个脚本执行需要 1 小时,使用 crontab 每隔2小时执行一次,一般情况下下次执行脚本时上次脚本执行肯定是跑完了的;但是,假如,程序卡住了呢?下次执行时上次脚本还在,会咋样?会再启动一个脚本,这时候就有两个脚本在执行,如果产生冲突会把事情搞得更复杂。咋整?1.flock 来帮忙直接在 linux 输入 flock 命令,就会获取使用说明:Usage: floc

2020-05-20 19:50:39

springboot从零开始:定时任务

前言:描述一下场景:微信公众号发送模板消息的时候需要 accesstoken,这个字段的值两个小时以后会过期,所以需要每一个小时去请求一次accesstoken存到 redis,用的时候直接去 redis 取就行了。这里只把定时代码写出来,其他的逻辑不在这里说。1.springboot 自带注解实现定时在类上使用 @EnableScheduling 注解,在定时的方法上使用 @Scheduled()import org.springframework.context.annotation.Conf

2020-05-19 20:12:24

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。