自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Asa_Prince的博客

你知道的越多,你不知道的越多。

  • 博客(232)
  • 收藏
  • 关注

原创 java项目配置文件加密

Jasypt 是一个用于配置文件加密的 Java 库。它可以用来加密和解密配置文件中的敏感信息,如数据库密码、API 密钥等。主要分为两个版本:一个是1.9.2版本,一个是1.9.3版本。默认加密方式不一样。1.9.2版本:默认加密算法是PBEWithMD5AndDES1.9.3版本:默认加密算法是PBEWITHHMACSHA512ANDAES_256。

2024-05-21 11:45:58 206

原创 Web-实时消息推送-详解

消息通知

2024-05-10 17:45:11 831

原创 保证接口数据安全的10种方案

接口安全

2024-05-10 16:42:55 765

原创 Swagger3 注解使用(Open API 3)

Swagger2(基于openApi3)

2024-04-29 15:19:03 799

原创 JavaMail发送邮件

请注意,发送邮件的具体实现方式可能因邮件服务器的不同而有所差异。在使用JavaMail发送邮件之前,需要先了解所使用的邮件服务器的要求和配置。另外,保护用户数据的安全性也是非常重要的,建议采取适当的安全措施,如使用SSL/TLS加密连接或使用授权码代替密码进行身份验证。

2024-04-29 14:45:34 296

原创 数据加密保障数据安全

但是经过hash处理后的密码依然未必安全,常见的有字典破解以及暴力破解,但是由于上述方法算法复杂度过大,当下大多选择更高效的查表法进行处理——包括逆向查表以及彩虹表法。salt是一个随机生成的长字符串,将salt与原始密码连接,对连接后的字符串加密,由于salt的随机性,解决了查表法带来的问题。因此,使用MD5加密的数据,后端不需要再次加密,只需要将加密后的数据保留至数据库。数据加密是安全领域中常用的安全措施,它们的主要作用是保护数据的机密性和完整性,以防止未经授权的访问、窃取、篡改或泄漏敏感信息。

2024-01-16 16:55:46 1277

原创 rancher2.6 docker版本部署

注:上面命令中rancher的版本v2.6.5,仅仅是我因为我们环境中使用的k8s都是 1.20.1 到1.23.6 之间的版本。

2023-11-24 15:47:41 1169

原创 Spring Cloud Gateway 网关跨域问题解决

Spring Cloud Gateway 网关跨域问题解决

2023-11-24 15:24:23 1547

原创 git lfs介绍

Git LFS,全称Large File Storage,是Git版本控制系统的一个扩展。

2023-10-31 11:12:48 788

原创 Optional简述(Java8新特性)

构造方法是私有,不能new来创建,Optional的三个静态方法来创建对象,【empty()、of()、ofNullable()】// 1、创建一个包装对象值为空的Optional对象// 2、创建包装对象值非空的Optional对象// 3、创建包装对象值允许为空的Optional对象。

2023-06-14 11:31:41 538

原创 执行kubectl命令失败server was refused问题解决

server was refused问题解决

2023-04-27 12:21:37 3051 3

原创 MySQL索引下推

mysql索引下推

2023-02-14 16:23:34 387

原创 2023新的一年,杂记

千山万水,不负理想,不忘初心,拨云见日,未来可期!

2023-01-07 11:16:12 144

原创 解决java: 程序包org.springframework.boot不存在的解决方法

程序包org.springframework.boot不存在

2022-11-22 17:20:37 29640 19

原创 mysql回表查询

什么是mysql回表查询

2022-07-13 14:18:16 2449

原创 Hashmap遍历时用map.remove方法为什么会报错?

private static HashMap<Integer, String> map = new HashMap<Integer, String>();; public static void main(String[] args) { for(int i = 0; i < 10; i++){ map.put(i, "value" + i); } } for(Map.Entry&l.

2022-05-30 11:41:48 1912

原创 监控系统-埋点

监控系统顾名思义就是希望对业务系统进行监控,监控大致上分为这么几个环节:埋点、传输、计算、展示。每一个环节具体如何去做,方案如何抉择都是一篇很长的文章,今天就只谈谈关于如何埋点的体会。通常的来说,埋点主要有三种形式,或者说获取客户端数据有三种方式动态字节码增强(动态代理) — 约定配置主义 侵入到需要埋点的中间件 —埋点主义 采集所有的日志数据 — 现象主义约定配置主义 先看看第一种,所谓的动态字节码增强有两种方式,其一是在class文件被加载到JVM之前就代理了业务类,其二...

2022-03-10 15:28:54 1168

原创 Docker 镜像地址修改

安装docker后,docker默认镜像地址是国外docker官网地址,由于国内网速的原因,下载镜像非常慢,且容易断网,所以安装docker 后我们一般需要将docker改成国内的镜像地址,其方法如下:1、vi /etc/docker/daemon.json { “registry-mirrors”:[“https//registry.docker-cn.com”] }2、加载docker镜像配置 Systemctl daemon-reload3、重启docke...

2021-09-28 15:01:16 2958

原创 浅析VO、DTO、DO、PO的概念、区别和用处

本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布...

2021-09-24 16:57:08 429

原创 如何判断终端环境是物理机、虚拟机还是容器?

有点黑客帝国的意思,我就想探索下怎么判断当前终端所处环境是容器里还是就在物理机上,或者是虚拟机?容器和虚拟机的区别:容器共享内核,虚拟机独享内核虚拟机和物理机的区别:虚拟机是软件模拟的完整硬件系统功能的、完全隔离环境的计算机系统。只要模拟的全面,是没有太大差别的。除了性能差异,毕竟软件做了硬件的事。以下测试环境:容器 docker虚拟机 私有CVM物理机 ubuntu方法一:sy...

2021-09-24 16:50:54 1534

原创 logback的使用和logback.xml详解

一、logback的介绍Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块:logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能二、logback

2021-09-24 16:15:17 400

原创 有钱人的帮助-随笔

近期,忽然意识到一个挺有意思的现象。 一些很有钱的人,十分乐于助人,尤其对自己需要帮助的老乡慷慨解囊。这些老乡当然一般都是遇到了一些十分困难的事情(比如缺money、或者需要跑关系办事情。在zg社会中不可避免的,这个也无需多说什么,懂得都懂)。 这个时候有意思的事情就来了。大多数时候,老乡都会感激涕零,感激这么有钱的人还能用平常心对待自己、费尽心思帮助自己,以至于后面有钱人让自己做点什么,这时候老乡都会极尽全力、歇斯底里的去完成,想极力报答当初的恩情。...

2021-08-18 11:37:29 206

原创 常见的三种加密以及对应的加密算法

各种加密用了很多,MD5、SHA、AES、RSA...等,但是还是傻傻的分不清这几种加密算法分别属于什么类型的加密,以及加密的逻辑。现在放在一起研究了下,于是整理出这篇文章来。一、散列算法(Hash算法---单向加密算法)1. 简介散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应...

2021-07-19 17:52:09 3697

原创 InitializingBean、BeanPostProcessor、init-method、@PostConstruct执行先后顺序

一、理论@PostConstruct 注解好多人以为是Spring提供的。其实是Java自己的注解。该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。通常我们会是在Spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:Constructor(构造方法) -> @...

2021-06-29 21:06:23 8662 5

原创 Java Json 数据下划线与驼峰格式进行相互转换

开发中,我们经常会使用JSON格式的数据进行传输。但是不同的需求,可能传递的数据格式不太一样,有的需要下划线,有的需要驼峰,而我们的 Java 实体类又是一个,如何将他们来回转换呢? 其实,在各种JSON 工具中,都提供了这个方法,下面针对Fastjson、Jackson、Gson 这三种常用的工具来进行下简单的介绍。User类public class User { private String nameInfo; private String ag...

2021-06-29 19:11:02 8546

原创 Mac根目录下创建目录问题

我使用的 MAC 的 ios版本是 11.2.3出现这种问题,网上的许多帖子都是说更改SIP的状态# 常见错误1, 直接创建目录mkdir -p /testmkdir: /data: Read-only file system# 常见错误2。 进入安全模式,关闭authenticated-root和SIP后,重新挂载根分区sudo mount -uw /mount_apfs: volume could not be mounted: Permission denied m.

2021-05-08 19:32:16 2233 2

原创 QPS/TPS/PV 之间的关系

一、概念解读 QPS:(Queries Per Second),及每秒执行的查询总数(每秒有多少的请求响应--“每秒查询率”)。 客户端请求一个地址时,比如百度首页,其实会产生很多的请求,比如js、css、png等,像这样的每个单个请求都可以算作查询次数。若在一秒内,客户端请求服务端的首页,服务端返回了N个内部链接(js、css、png、html等),那么服务端的QPS就为N。 QPS反映系统的吞吐能力,更偏向于读取文件,查询数据。 TPS:(Transactions Per Sec

2021-05-06 14:33:31 796

原创 mac os 下使用sublime 退出后重新打开文件不再显示

在Windows系统下,sublime 打开时,默认会打开上次编辑的文件(不管是不是已经保存的文件)。而当在mac os 下,点击关闭就会弹出是否保存解决方法:退出使用cmd+q, 别用cmd+w或者关闭按钮。...

2021-05-06 13:38:42 1364 1

原创 Redis 实现分布式锁 以及 Redisson 源码解析

在某些场景中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的。随着互联网技术快速发展,数据规模增大,分布式系统越来越普及,一个应用往往会部署在多台机器上(多节点),在有些场景中,为了保证数据不重复,要求在同一时刻,同一任务只在一个节点上运行,即保证某一方法同一时刻只能被一个线程执行。在单机环境中,应用是在同一进程下的,只需要保证单进程多线程环境中的线程安全性,通过 JAVA 提供的 volatile、ReentrantLock、synchronized 以及 concurrent .

2021-04-12 16:35:00 777

原创 Redis主从复制、哨兵机制

一、主从架构在Redis中,用户可以通过执行SALVEOF命令或者设置salveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(salve)二、主从复制和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量

2021-04-12 15:09:18 157

原创 IoC 和 AOP讲解

文章会从如下几个方面来进行解释什么是 IoC? IoC 解决了什么问题? IoC 和 DI 的区别? 什么是 AOP? AOP 解决了什么问题? AOP 为什么叫做切面编程?首先声明:IoC & AOP 不是 Spring 提出来的,它们在 Spring 之前其实已经存在了,只不过当时更加偏向于理论。Spring 在技术层次将这两个思想进行了很好的实现。什么是 IoCIoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。.

2021-04-11 23:02:08 515

原创 什么是关心?什么是理解?

题外话:我闲职在家,当初的确是裸辞,也知道裸辞的坏处,可是我独自一人,没有什么负担,再加上家里的一些事情才决定的裸辞,这个不在本题的讨论范围之内,这篇文章只是从现象引发了我的一些思考,也算是随笔吧。最近闲职在家找工作,遇到一个很揪心的问题,亲人们总是很关心的问候,“工作找的怎么样了?”,“还没有面试?”经过和母亲的激烈讨论(争吵~~!)我深度思考了这个问题,什么是关心?什么是理解?关心,这个对比于理解来说,我认为简单的多,就比如我在家一个月(时间很久),见到亲人就会问起上面的问题,这是..

2021-04-07 11:55:13 1002 3

原创 mapreduce在yarn上运行,Container killed by the ApplicationMaster, Exit code is 143

mapreduce 程序在yarn上运行时报错,报错信息具体如下:.....[2021-03-28 17:38:50.081]Container killed on request. Exit code is 143[2021-03-28 17:38:50.085]Container exited with a non-zero exit code 143. 2021-03-28 17:38:57,155 INFO mapreduce.Job: Task Id : attempt_16169

2021-03-28 17:45:10 1677 3

原创 hadoop3 提交任务出错(找不到类)

mapred-site.xml要在hadoop2的基础上添加<property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property> <name>mapreduce.map.env</name> <valu

2021-03-28 17:23:37 130

原创 Chrome开发人员工具Network保存的请求记录HAR文件如何打开,怎么解析?

之前的Network是没有导入HAR文件功能的,最近的新版本有了重新导入HAR文件的功能,非常棒的一个功能,所以必须要分享出来给大家。导出HAR文件有两两种方法:1、随便选择一条请求记录然后右键选择Save all as HAR with content即可导出请求记录为HAR文件。2、工具栏面板上有个向下的箭头(Export HAR…)点击它也可导出请求记录为HAR文件。导入HAR文件到Network:工具栏面板上有个向上的箭头(Import HAR file…)点击它可以导入HA

2021-02-19 15:25:45 2883

原创 docker的privileged 与 k8s的privileged 设置方式

有一个容器想要从docker直接运行改造成kubernetes部署,结果发现很多文件的权限,在docker和kubernetes中不一样 1、docker 运行privileged命令:docker run -t -i --privileged centos:latest bash 2、kubernetes 里面比较完整定义了 SecurityContext: capabilities: add: ["NET_ADMIN"] 需要在pod的yml中增加如下定义...

2021-02-19 15:23:21 6213

原创 如何向容器传递环境变量,以及如何查看Docker容器环境变量

1 前言 了解Docker容器的运行环境非常重要,我们把应用放在容器里执行,环境变量会直接影响程序的执行效果。所以我们要知道容器内部的环境变量,也要知道如何改变这些环境变量。2 设置环境变量2.1 方式一:打包设置dockerfile 在通过Dockerfile打包镜像的时候可以配置环境变量:ENV SERVER_PORT 80ENV APP_NAME pkslow2.2 方式二:启动设置docker run --env 使用--env和-e是一样效果的,示...

2021-02-19 15:15:11 6745

原创 spring注解之@ComponentScan注解

自定扫描路径下边带有@Controller,@Service,@Repository,@Component注解加入spring容器 通过includeFilters加入扫描路径下没有以上注解的类加入spring容器 通过excludeFilters过滤出不用加入spring容器的类 自定义增加了@Component注解的注解方式 1、 @ComponentScan注解是什么 其实很简单,@ComponentScan主要就是定义扫描的路径从中找出标识了需要...

2021-02-19 15:03:50 101

原创 Nginx下关于缓存控制字段cache-control的配置说明

HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括: no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。响应消息中的指令包括: public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max

2021-02-19 14:59:36 3471

原创 Git push

在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构。 git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master...

2021-02-19 14:43:51 127

空空如也

空空如也

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

TA关注的人

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