自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TingSty小z的博客

路漫漫兮其修远兮

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

原创 正则表达式中扩展表示法的理解

我觉得应该叫匹配的『补充』,对于匹配的字符串的其他部分的一个补充,相当于一个and(且)条件。因为满足这个补充条件的字符串部分并不会当做结果的一部分。表示的是匹配小写字母一个或多个,(补充条件)正则表达式可以拥有扩展表达式,大致形式是。匹配之后需要满足后续有数字一个或多个。,结果中并没有包含数字部分。

2023-11-03 15:25:05 320 1

原创 Docker在Mac中--network=host不生效

Docker --network=host 的方式让容器共享宿主机的网络端口号,这种方式只能在Linux系统中有效,其他系统(MacOS, Windows OS)无效,因此在Mac中只能用 -p 方式将端口号映射出来,才能访问到容器中的服务。

2023-11-03 15:17:28 619

原创 为什么在token在http请求头中的Authorization要加Bearer前缀?

(2)分布式架构下的服务端,这种多是toC,大型服务,复杂系统,这种方式需要共享session,多个服务器都能访问,这样对于共享session的方式,可以是同步session,也可以是单独的服务做认证,类似redis集群存放认证信息,这种类似与网关的服务。(1)单服务器的服务端,这种多在小型服务中,私有化部署,toB项目的服务中。token的方式,这种完全不需要认证服务器,token自带认证功能。两种方式有什么区别呢?就能冒充身份,所以使用时必须注意网络环境,或者请使用。完全暴露在网络环境中,其他人获得。

2023-09-22 15:24:53 2725

原创 利用spring写一个反向代理

反向代理,spring boot

2023-09-18 16:56:29 448

原创 樊登读书:为什么现在的人容易失眠?

床变成娱乐的地方,生物钟乱了,有困意的时候依然撑着,然后身体兴奋,困意全无,白天没有感受到阳光。

2023-09-02 22:56:17 58

原创 记录一些问题

利用springboot的maven插件打包jar,在java -jar运行时,会采用springboot自定义的类加载器来加载类,使用的是LaunchedURLClassLoader,(使用assembly插件不会有这个问题),但是代码在IDEA中能够运行,但是打包成jar之后无法运行,报由加载这个类的类加载器和类本身来唯一确定一个类,也就是说类相同,但是类加载器不同也会被认为是不同的类。类加载器相同,指的是同一个类加载器对象(不同实例也是不同的类加载器),而不是类加载器的类相同。

2023-08-30 18:46:21 115

原创 第三方cookie危害理解

http协议的无状态,导致需要通过其他方式来记录用户的上下文。cookie分为会话cookie和持久cookie,会话cookie在浏览器关闭后就会删除掉,持久cookie会存在更长的时间,可能有一个过期时间,一般用于用户使用浏览器经常登录的网站,这个会持久化记录在本地,浏览器退出也不会删除。

2023-08-24 15:19:34 459

原创 如何通过jar包得知maven坐标,以及如何替换依赖的依赖的版本

从结果中可以看到是哪个模块,哪个依赖引入的,以及依赖引入的scope,注意provided不会打包进去,解决这个问题应该是从最基础的模块开始解决。使用这个命令就能找到所有的引入com.fasterxml.jackson.core:jackson-databind依赖的引入路径。思路1:将jar包的名字(去除版本号)在mvn仓库中搜索,地址:https://mvnrepository.com/,看能不能找到。思路:首先需要排除掉多余的依赖引入,可以在相关的依赖上用。思路:使用maven命名查找。

2023-02-24 11:04:39 3721 1

原创 springfox接口文档如何关闭

接口文档区分生产环境和开发环境,如何通过开关控制

2023-02-20 14:33:33 4296 1

原创 spring如何实现权限实时生效,如何获取在线用户,getAllPrincipals()为空

spring security的权限修改后无法实时更新,由于使用的spring security做权限控制,并且在用户登录时,将该时刻用户的权限(authority)读到用户的UserDetails(org.springframework.security.core.userdetails.UserDetails)类中,如果用户不主动重新登录,那么这个写入到session中的类无法刷新。需要获取当前spring服务的登录用户,哪些用户在登录状态,我大致思路和这个类似,也是用。

2022-10-27 15:57:28 1207 6

原创 正则表达式排除一些关键字

正则表达式中AND如何实现,日常需求:变量名的规则是除了一些关键字之外其他组合均可

2022-10-20 10:29:08 1616

原创 记录mac安装基础软件问题

基础软件的安装问题:brew,iterm2,idea

2022-07-19 20:34:22 1094

原创 git log按下q结束时,结果依然能在终端上看到

由于使用git cherry-pick需要commit Id,所以就需要使用git log看commit信息,但是当我在iTerm2上使用zsh来用git log时,按下q结束后,终端上展示的结果也被吃了,这种感觉就像时less按下q,也类似与vim编辑后结束,终端不能存留看到的commit信息...

2022-07-14 10:36:28 154

原创 解决IDEA 找不到或无法加载主类 问题

问题:当在IDEA中执行含main方法的java程序时,IDEA报找不到或无法加载主类。记录一下解决方法:1、试invalid cache and restart。我执行了,没能解决,不适用我的情况2、delete target文件夹 重新maven编译,执行了,不适用3、检查edit configuration 中main class检查了,和预期的相符。我的解决方法:在edit configuration 中勾选 include dependencies with “Provided”

2022-05-05 14:50:41 11718 1

原创 spark sql出现创建文件权限不够的问题

Spark shell 执行 sql, 出现权限不够的问题java.io.IOException: 权限不够at java.io.UnixFileSystem.createFileExclusively(Native Method)从日志上看 spark创建临时文件权限不够,默认情况下spark.local.dir是spark创建临时文件的目录,如果没有在spark的conf中指定,默认的目录是/tmp,所以当前问题 需要看下当前用户是否能在根目录下创建文件。正确的tmp目录的权限:一般是r

2022-03-04 10:58:55 1933

原创 反向shell实操

实验一:A机器传递信息到B机器:测试环境macOS 10.151、A用nc命令 listen本机一个端口号nc -l 80002、B 用telnet命令 去连接A机器的ip和端口号telnet ipA 80003、显示连接成功后,B机器可以输入文本,文本会传输到A机器上。实现B-》A的信息传输telnet的退出 ctrl+]实验二:反向shell,A机器控制B机器一种方式是ssh 登录到B机器上,这种属于正向Shell,A主动连接B,然后控制B;另一种方式:方向shell,B

2022-02-25 16:44:21 4676

原创 proguard代码混淆问题

记录自己遇到的代码混淆问题(spring boot项目代码混淆):1、由于引入框架,比如JDO,spring boot,有些方法是框架去调用,所以这些是不能够被混淆的。比如自己编写的转换类:public class ListStringToStringConverter implements AttributeConverter<List<String>, String> { @Override public String convertToDatastore(Lis

2022-02-24 10:27:29 1177 1

原创 多模块java项目代码混淆

声明:本项目并非安卓(android)项目,只是springboot项目或者普通的java项目,maven进行依赖管理。使用插件:proguard官方帮助文档maven依赖:<!-- https://mvnrepository.com/artifact/com.github.wvengen/proguard-maven-plugin --><dependency> <groupId>com.github.wvengen</groupId>

2022-02-17 17:25:26 2581 1

原创 nginx安装时如何引入第三方库

nginx安装步骤:1、nginx 下载: 谷歌直接搜 nginx 下载2、选择版本。这里选择的是1.18.0版本yum install -y wgetwget http://nginx.org/download/nginx-1.18.0.tar.gztar -zxf nginx-1.18.0.tar.gzcd nginx-1.18.03、第三方模块地址:可以通过安装git来拉取数据,git clone https://github.com/chobits/ngx_http_

2022-01-21 17:57:22 3158

原创 GRPC 正向代理实现

目录:1、proto文件2、maven编译的时候同时编译proto文件生成对应的java类3、编写grpc的客户端,编写Grpc服务端,4、proxy的配置1、proto文件编写必须定义版本 proto3syntax = "proto3";import "google/protobuf/wrappers.proto";import "google/protobuf/empty.proto";option java_multiple_files = true;option jav

2022-01-21 17:46:23 1909

原创 db2安装(二)

承接上篇:这篇由于安全规定:不允许docker 容器中的root拥有和宿主机root的权限,也就是上篇中启动docker 容器中的参数:–privileged=true 这个是有安全风险的我试了不加这个参数启动容器发现在容器内部db2start命令都会报错,暂时就不考虑用这个镜像了,改用其他镜像:ibmoms/db2express-cexpress-c本来就是开放出来学习的版本,所以先用这个试试,这个镜像已经有三年没有更新了,估计是转去维护其他镜像了docker pull ibmoms/db2e

2022-01-17 20:25:06 994

原创 java访问DB2 (一)

本文章分两个部分:1、启DB2服务,编译后续的测试2、java访问DB21、启DB2服务网上查了一些DB2的安装,很复杂,直接去docker hub上看看有没有镜像,发现真就镜像,那么有镜像就好说了直接拉取镜像run起来就行了。前置条件:安装好docker环境接下来:docker hub上DB2镜像它给出了quick start:直接run:docker run -d -p 50000:50000 --name my-db2 --privileged=true -e DB2INST1_

2022-01-17 12:07:24 2102

原创 io.fabric8 插件docker maven plugin的用法

鉴于在网上没有搜到一个完整实例,自己摸索后,记录如下:1、docker push命令的用法,一般会先去docker tag 命令将你要push到的registry加到tag中,这样后续直接docker push image。前置条件:docker客户端先登录registry(或含有该registry的认证),如先执行docker login,或者直接去改认证文件,不是本篇重点,不再话下。docker image tag rhel-httpd:latest registry-host:5000/myad

2021-09-26 17:41:22 18987

原创 git官方文档以及一个git merge的理解

git 官方文档:https://git-scm.com/book/zh/v2当两个分支不在同一条链上时(从一个commit处分叉了)git merge:它的原理是:将三个commit合并成一个commit(两个分支当前的快照和共同的祖先commit,这三个commit)。...

2021-08-11 20:00:28 104

原创 git空间代码从一个代码仓库搬到另一个代码库

代码搬运,git空间代码从一个代码仓库搬到另一个代码库。(要求保留以前的提交信息)例子:A代码库的代码推到B代码库中**1、**在A代码库本地,git remote add origin2 新代码库的地址。这是在添加一个remote,origin2这个名字自己起,添加完可以用git remote -v 看下已有的远程代码库链接**2、**拉取要push 到B代码库的分支,git pull基于这个分支 再建一个分支,git checkout -b 新名字,起好名字,这个名字将会是B代码库的分支

2021-08-11 19:40:41 810

原创 Linux和Unix的关系

最开始出现Unix操作系统,比较好用,用户也用惯了,但是后来转商用和闭源了,导致很多人不能再用。这种情况下,有人提出GNU计划,目的是:打造和Unix一样的系统,但是开源。很多人为此贡献代码,其功能都是模仿Unix系统,这个计划实施到最后,大部分都完成了,但是还缺乏操作系统。linus这个人刚好开发了Linux系统,因此,这两者互补,合并在一起就成为了GNU/Linux系统,念着念着,人们就只说是Linux系统,将GNU省略。BSD(Berkeley Software Distribution)是Un

2020-10-12 16:30:08 136

转载 springboot前后端交互之json序列化和反序列化系列(二)

本小结讲述Jackson的使用。因为json和对象的相互转换肯定是经常用到的,所以定义一个jacksonUtils类pom文件配置:<jackson-version>2.3.3</jackson-version><!-- json analyz --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jack

2020-09-24 16:10:12 207

转载 springboot前后端交互之json序列化和反序列化系列(一)

首先不讲序列化,讲为什么要序列化。原因可能有两点:在springboot Controller层在请求映射方法中用@RequestParam注释了多个参数。@RequestParams的列表太长无论是控制器还是其他类,我都相信您同意很难读取一长串方法参数 。 另外,如果参数类型相同,则更容易出错。通常,将一组参数一起传递到应用程序的不同层。 这样的组通常可以形成一个对象 ,您要做的就是提取它并给它起一个适当的名称 。(参数列表太长,可以考虑转换成一个对象)@RequestParams的

2020-09-23 15:39:47 651

原创 springboot前后端交互之json序列化和反序列化系列

现在java开发都是前后端分离,通过传递json进行信息传递。不可避免的会遇到对象的反序列化和序列化。(此篇作为开篇,后续还会更新)反序列化反序列化前端请求体中的json,反序列化为一个特定对象。所要用的知识:springboot会匹配json中的key和类的属性名称...

2020-09-23 11:42:48 542

原创 抛出的异常信息中要包含变量的名字的解决办法

在开发中得到的小trick:在开发时候会遇到抛出异常的需求,抛出的异常信息中要包含变量的名字,而不是变量的内容。例如:String names = "sty,ldq,cjl";String nations ="China,Japan,England";List<String> nameList = decode(names);List<String> nationList = decode(nations);public static List<String&gt

2020-09-17 19:56:55 220

原创 关于Spring security 使用时禁用自带的登录页面

寻找了一天的方法,都不能解决这个问题。后来自己试了试不实用表单登录,发现可以了。找到的几个解决办法:https://www.zhangbj.com/p/524.htmlhttps://www.baeldung.com/spring-boot-security-autoconfiguration表单登录时 loginPage方法的原理:https://stackoverflow.com/questions/28658265/how-to-remove-a-filter-from-spring-se

2020-08-19 21:24:26 7185

原创 记录一个运行程序时出现的问题以及解决办法

IDEA中运行JAVA程序出现Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/service/CompositeService问题Exception in thread “main” java.lang.NoClassDefFoundError:

2020-07-16 09:51:30 231

原创 两个关于环境变量设置的知识

1、关于win10系统下,编辑环境变量path时,有时是横排显示,有时是一个列表显示,为什么?当环境变量path是以百分号**%**开头,比如%JAVA_HOME%…这种,那么在编辑的时候会以横排的方式进行显示,如果path是以一个绝对路径开头,那么双击编辑它时,将是一个列表的形式进行显示。以横排进行显示的话,无法通过“浏览”目录的方式添加多个目录;因此只能通过列表的形式进行“浏览”新增新的路径。2、环境变量中添加path的方式一般有两种,直接将bin文件的路径添加进去,另外一种方式就是通过“浏览”的

2020-07-13 19:01:06 713

原创 约瑟夫问题

笔试面试中常见的代码题:package aboutArrayAndMatrix;//约瑟夫问题public class JosephusProblem2{ public static void main(String[] args) { //求有五个人围成一圈,从编号为2的人开始报数(常识:第一个报数的人报数字1),报到数字3的人则退出圈子,然后下一个人重新从1开始报数。 //参...

2019-11-19 15:56:56 102

原创 几种换零钱的动态规划(动态规划也称动态优化,是求一个最优的解,比如最小的数或者最大的数)

1、换零钱package dynamicPrograming;import java.util.Scanner;//题目:给定数组a,a中所有数均为正数,每一个值代表一种面值,且只有一张,再给定一个正整数aim代表要找的钱数,问有多少种不同的换钱方法。//经典的动态规划方法都是将动态规划表建立起来,动态规划表均是n行aim+1列,首先确定表的边界的值(即第一行与第一列的值),再分析dp...

2019-11-19 15:53:19 263

原创 冒泡排序以及优化java

第一种写法:package sort.bubbleSort;//冒泡排序public class BubbleSort{ public static void main(String[] args) { int[] a= {8,6,1,5,3,4,2,0}; sort(a); for(int i:a) System.out.print(i+" "); } publ...

2019-11-19 15:48:43 152

原创 windows命令行窗口用javac编译没有问题,用java执行时,出现找不到或者无法加载主类的问题

出现这个问题的原因在《疯狂java讲义》中有讲到:对于jdk1.4及以前的版本,在安装jdk的时候必须设置Path和classpath环境变量,而在jdk1.5以后就无需设置classpath环境变量,jre会自动去搜索(两个路径):path路径和当前路径。并且:jdk1.5以上也可以设置classpath,一般作为加载第三方类库来使用,此时一旦设置了该环境变量,jre将会按照该环境变量指定的路...

2019-11-19 15:34:33 243 1

原创 连续的子数组和

给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入: [23,2,4,6,7], k = 6输出: True解释: [2,4] 是一个大小为 2 的子数组,并且和为 6。使用 HashMap 来保存到第 i 个元素为止的累积和,但我们对这个前缀和除以 k ...

2019-08-13 09:39:18 457

原创 java多重背包代码实现

自己百度搜的关于多重背包问题的java代码总是不合自己心意,所以自己来写一下:多重背包问题涉及 :物品种类,背包限制,每种物品的重量,每种物品的数量,每种物品的价值。动态优化出最大价值。贴代码(包括一维数组更新的方式,和二维dp矩阵的方式):import java.util.Scanner;//多重背包问题:/* * 输入: 2 10 1 1 1 1 1 1 输出: ...

2019-08-05 10:12:43 1004

原创 linux中/etc/profile中配置了环境变量,但是程序还是无法直接启动

遇到这个问题,我先百度下,发现有一个大牛有了回答,链接如下:https://blog.csdn.net/qq_26442553/article/details/85346240但是很可惜,我的Linux里面没有他所说的.bash_profile这个隐藏文件,百度了一下,说Linux里面用户home目录下确实可能不存在这个文件(参考:https://blog.csdn.net/paullinji...

2019-07-04 21:02:58 1961

Java实现斐波那契数列(Fibonacci sequence)

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。java代码实现该数列

2018-09-03

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

TA关注的人

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