自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 阿里开源TransmittableThreadLocal使用经验记录

本文章主要记录我在一次业务优化中,使用线程池带来的子父线程值传递问题,及使用TransmittableThreadLocal来解决该问题的经验,并对TransmittableThreadLocal原理做些梳理。

2022-06-01 10:07:41 2576

原创 阿里开源TransmittableThreadLocal避坑

前言 最近优化公司项目一个功能,由于牵涉到数据量比较大,业务复杂,之前单线程执行响应时间比较久,大概10s左右。优化的思路,想到了多线程执行。 由于业务中使用了ThreadLocal,它是来解决变量在多线程使用相互影响问题,ThreadLocal能够做到变量在多线程间隔离,是因为每个线程将变量存储到自己的threadLocals(ThreadLocal.ThreadLocalMap类型)中。如果使用多线程话,需要解决父子线程值传递问题,想到了InheritableThreadLoc...

2021-12-09 16:38:13 4588 3

原创 springboot 实现图片上传功能

环境介绍springboot 版本2.1.3<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath /></paren

2021-01-12 10:17:49 877 1

原创 springboot 多模块使用Jib插件发布镜像

前言:如果项目是单体,使用的tomcat是springboot内嵌tomcat。直接使用mvn clean compile jib:build -DsendCredentialsOverHttp=true 打包发布镜像即可。现在springboot项目都是多模块具备父子结构项目。如果你想在A模块打包镜像发布到镜像仓库中心,但A模块依赖B模块,B模块需要被打成jar依赖到A模块中,这种情况使用jib:build命令,将会找不到B依赖。处理办法:将jib与mvn构建的生命周期绑定<ex.

2020-12-31 16:30:06 1505 4

原创 linux 安装rabbitmq

第一步:安装前环境检测,RabbitMQ是用Erlang语言编写的,需要有Erland环境。命令:erl -version 如果显示 未找到命令 ,需要安装Erland安装epcl存储库命名:yum -y install epel-release安装erland 命令:sudo yum install erlang再次执行erl -version 查看erland版本 可以看到对应版本号 如下:Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulat..

2020-12-30 11:41:36 310 2

原创 Docker 部署web应用,获取项目根目录问题

问题描述: 项目中将一些文件存在容器根目录某文件夹下,获取项目根目录地址:request.getSession().getServletContext().getRealPath("/)使用自制的tomcat镜像,docker容器部署项目话,获取不到结果。问题处理:更改项目根目录获取方式:String rootPath= 类.class.getClassLoader().getResource(".").getFile();File classFile = new File(rootPath)

2020-12-09 14:26:29 1513

原创 idea maven package 打包生成的class 不是最新文件问题处理

试试

2020-11-30 10:13:45 2618 1

原创 docker 制作tomcat9.0 镜像 并修改context.xml内容

第一步:资源准备准备jdk 和tomcat 安装文件jdk-8u144-linux-x64.tar.gz apache-tomcat-9.0.39.tar.gz第二步:编辑Dockerfile 文件我将所有文件存在/root 目录。文件说明:context.xml 是我准备替换tomcat conf 目录下面的context.xml文件,该文件存在了数据源jndi 方面配置信息。readme.txt是一个空文件下面开始编辑Dockerfile文件FROM centosM..

2020-11-19 15:36:34 850

原创 linux 安装python3.6.10

第一步:下载离线安装包,使用.tgz 格式,为.tar.giz格式缩写(官网地址:https://www.python.org/downloads/release/python-3610/)第二步:环境检测与安装python安装需要有gcc环境 环境检测:gcc --version如果缺少gcc环境 则安装gcc 命令:yum install gcc zlib-devel open...

2020-11-19 10:22:00 229

原创 win10 修改c盘用户文件夹名称

c盘用户文件夹如果是中文名 可能会导致需要没必要的麻烦,记录一下修改方法第一步:如果你电脑不是本地用户administrator,注销当前用户使用administrator登录按win+x 点击关机或注销 在点击注销注销后如果没有Administrator登录方式,尝试一下方法打开命令行 输入:net user administrator /active:yes成功即可。如果出...

2020-03-10 11:18:00 243

原创 RabbitMQ 3.8.2版本 window 安装教程

第一步安装Erlang下载安装 Erlang为RabbityMQ的开发语言和运行环境。 安装Erlang时要注意安装的RabbityMQ所依赖的Erlang版本,具体依赖版本请参考 Erlang Versions网址:http://www.rabbitmq.com/which-erlang.html --查看RabbitMQ和Erlang的对应关系Erlang下载地址:http://w...

2020-03-10 10:05:00 206

原创 maven intall 命令用法

作用:将自定义maven项目 打成maven依赖存放到本地库,我们可以在另一个项目pom文件中加入相应依赖,刷新mavne即可将其加入项目中使用使用说明:win+R 打开命令窗口,将目录切换至项目所在位置,执行maven install --settingD:\apache-maven-3.3.9\conf\setting.xml (备注:--setting 参数指所使用的本地库地址,...

2020-02-25 15:10:00 470

原创 redis 模糊查询与删除

创建一条数据set name1 zhangsan查询get name1在创建一条数据set name2 lisi查询get name2模糊查询keys name*查询结果 name1 name2删除当前库中所有keyflushdb删除多有库中所有keyflushall批量删除以name开头的所有key退出redis-cli 客户端执行命令:redis-cl...

2020-01-16 17:52:00 116

原创 git 创建分支并提交代码

1、查看所有分支git branch -a2、查看当前分支git branch3、新建一个分支git branch feature-xx4、切换到新建分支上面git checkoutfeature-xx5、提交代码到本地缓存区git add .6、添加提交的代码备注git commit -m "备注内容"7、推送提交的代码到远程新建的分支上面git push orig...

2020-01-03 09:05:00 69

原创 win10提示防火墙没有法更改某些设置的处理办法

一、问题发现远程链接电脑时间发现远程链接失败 提问在“控制面板” 中打开“程序” 列表中启用“windows 防火墙” 。按照提示启用防火墙 ,发现启用或关闭页面不可编辑二、原因是防火墙Windows Defender Firewall 没用启用打开电脑服务列表(win+r 然后输入services.msc)找到Windows Defender Firewall 服务右键点击属性...

2019-12-23 11:47:00 131

原创 oracle 实现主键id自增

公司现在项目数据库使用oracle,oracle实现表主键自增比mysql麻烦mysql 在表主键auto_increment 打钩即可。oracle没有改属性,就相对麻烦。特此记录一下自增方法测试案例如下第一步创建一张测试表table1sql语句create table table1( id int not null, name varchar2(20), sex varcha...

2019-09-16 17:29:00 62

原创 idea 将部分class文件打包成jar使用

工作中有时候有太多模块堆放一块比较混乱,将某个功能(例如:三方支付)所需要的模块打包成jar使用起来会方便点。步骤如下:选择 Empty,然后为自己打的jar起个名字然后在myjar上面右键 创建一个目录如果红色箭头。接着在com模块上面创建模块接着创建最后结构图下一步就是向包model、util中添加对应的class文件点击+ 号 选择file,选择你项目编译后对...

2019-05-30 15:54:00 143

原创 liunx mysql 5.7 二进制安装

liunx 5.6版本 本人安装次数不下20次,基本上按照正常的操作流程不会出现什么问题,一切顺利。今天开发新项目需要按照mysql 5.7 版本。mysql 5.7版本和mysql 5.6版本变化挺大的,按照流程稍作休整。例如:mysql 5.6 初始化使用scripts目录下面的mysql_install_db 命令,而mysql 5.7 初始化使用 bin目录下的mysqld -...

2019-05-29 11:26:00 66

原创 window 命令行telnet 不能用问题

如图解决办法打开window控制面板,启用或关闭window功能,勾选telnet选项。

2019-05-23 09:30:00 89

原创 springboot 多模块打war 部署

先展示一下自己项目结构一共有5个模块依赖关系:下面的模块依赖上面所有的模块其中 rongke-web是我要部署的模块 最终要打war进行部署,其他模块均打jar 被rongke-web引用。开始打war前准备工作1、父pom.xml 移除spirngboot 自带的tomcat 导入外用tomcat依赖<dependency> <groupId>o...

2019-04-27 19:28:00 85

原创 springboot idea 代码更改自己编译设置

第一步:在pom.xml文件中添加springboot 编译依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true<...

2019-04-24 13:27:00 78

原创 spring 启动找不到shiro中 自定义的realm对应的class问题

干巴巴盯着项目半天,启动了好多次,每次都是sping报错找不到shiro配置文件中自定义的realm对应的class文件,明明有的,就是找不到。后来将eclipse对应的jdk1.7 更新为1.8 重新启动项目,好了。莫名奇妙,也不知道什么原因...

2019-04-17 14:16:00 85

原创 安装kafka过程及出现的问题解决

第一步:下载kafka安装包下载地址:http://kafka.apache.org/downloads解压 到/usr/local 目录tar -zxvfkafka_2.12-2.2.0第二步 下载zookeerper(之所以下载 是因为我使用kafka自带的 会出错)下载地址:http://zookeeper.apache.org/第三布:安装 zookeerper解压 ...

2019-03-28 16:57:00 242

原创 window mysql8.0 zip版本安装

第一步下载安装包官方下载地址:https://dev.mysql.com/downloads/mysql/解压到D盘目录中D://db第二步配置环境变量编辑path内容 添加mysql地址第三步 编辑my.int文件新建一个my.txt文件,内容[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置33...

2019-03-18 13:38:00 39

原创 不使用synchronized和lock 锁实现线程安全单例

单例实现方式一,锁机制public class Singleton { private static Singleton singleton=null; public Singleton() { } public static Singleton getIntance(){ if(singleton==null){ synchroni...

2019-02-28 10:38:00 60

原创 shiro 错误登陆次数限制

第一步:在spring-shiro.xml 中配置缓存管理器和认证匹配器<!-- 缓存管理器 使用Ehcache实现 --><bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <property name="cacheManagerConfigFile" v...

2019-01-08 17:15:00 90

原创 java 生产者消费者简单实现demo

第一种方式 使用BlockingQueue 阻塞队列public class Threads { public static void main(String[] args) { final ArrayBlockingQueue<Integer> queue=new ArrayBlockingQueue<>(10); produce p...

2019-01-07 15:16:00 38

原创 java 数组排序 插入排序、快排法

一、插入排序插入排序法思想:将n个数字分为前面几个是有序数字集合,后面几个为无序集合。当然尚未排序之前,可以将n0 看为有序数集合,N1-Nn-1 看为等待排序的无序集合。从N1开始将无序数一个一个插入到有序数集合中,使之再次成为有序数集合,当第Nn-1 个数字插入有序数集合中后。整个n数字集合便成为有序集合。示例:2,1,8,9,6,3,4,7,5第一步排序后结果:1,2,8,9,6,3...

2019-01-05 17:36:00 42

原创 mysql 利用druid 为访问密码加密

在原来数据库配置文件jdbc.properties 文件中增加几行加密文件jdbc.username=rootjdbc.password=KqYkfcQkQOdOpCnaokLfb9Kbzdf+NGaavui9yBS8R20fqQWSUZuh647GPe3ZHgHNqm3csBaM6XqmXQUpA2ljZA==jdbc.filters=config,log4jjdbc.publicKey=M...

2018-12-21 13:06:00 59

原创 liunx redis集群添加密码

第一种方法:修改每个节点redis.conf配置文件:masterauth 123456requirepass 123456各个节点的密码都必须一致,否则Redirected就会失败重新启动各节点第二种方法(推荐不需重新各个节点)./redis-cli -c -p 7001config set masterauth 123456config set requirepass 12...

2018-12-14 17:44:00 63

原创 liunx 下WebBench 安装与压力测试

安装:wgethttp://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gztar zxvf webbench-1.5.tar.gzcd webbench-1.5make && make install可能会出现的错误/bin/sh: ctags: command not found没有安装 ctagsy...

2018-12-05 17:04:00 50

原创 @Transactional 无效原因

在controller 上面使用@Transactional 注解时候发现数据没有回滚,在执行完update 更新语句,事务直接就commit 了,此时方法尚未执行结束,数据库数据已经更新了。第一反应应该是配置文件有问题,自己检查了spring.xml 和spring-mvc.xml文件,配置文件没什么问题。在pring.mvc中<tx:annotation-driven ...

2018-11-16 16:02:00 98

原创 @Autowired mapper 层次 bean 带红线

在利用@Autowired 注解创建bean 时候 有时间会带有下滑红色横线 给人一种报错的感觉下面是去除红线的办法将颜色红色error 等级降低为黄色warn 即可

2018-10-17 13:13:00 55

原创 java 类加载机制 阿里面试题

/** * 加载方法不等于执行方法,初始化变量则会赋值 * 类加载顺序应为 加载静态方法-初始化静态变量-执行静态代码块 * 实例化时 先加载非静态方法-实例化非静态变量-执行构造代码块-执行构造函数 * */public class StaticTest { /**第一个加载*/ public static int k = 0; /**第二个加载,因为是ne...

2018-08-31 15:27:00 36

原创 liunx 修改ssh 端口22

vim/etc/ssh/sshd_config找到Port 22 添加 Port 5002重启sshd/bin/systemctl restart sshd.service防火墙释放5002端口测试使用ssh链接5002端口 如果能成功链接重新编辑/etc/ssh/sshd_config 文件 将22端口注释掉 防火墙关闭22端口重新启动sshd 和防火墙 即可...

2018-08-27 18:07:00 38

原创 通过mysqlbinlog 恢复数据

前提数据库开启了bin_log记录日志。查看日志刷新日志flush logs;再次查看show binary logs;向表中插入一条数据现在执行delete误操作,删除所有的数据。delete from admin;先查看binlog,生成002.sql:mysqlbinlog mysql-bin.000002 > 002.sql查看002.sql,并只摘取d...

2018-08-15 18:42:00 42

原创 nginx 配置身份验证 http_auth_basic_module

ngx_http_auth_basic_module模块实现访问必须输入用户名和密码 正确情况向访问,这为我们一些重要资源访问增添了一道安全锁。语法: auth_basic_user_file file;默认值: —配置段: http, server, location, limit_except用户密码加密方式http://nginx.org/en/docs/htt...

2018-08-06 17:51:00 75

原创 liunx mysql 备份

执行命令:mysqldump -uroot -p lanwei > lanwei2018-08-02.sql出错-bash: mysqldump: command not found查看mysqldump 路径find / -name mysqldump -print输出路径:/usr/local/mysql/bin/mysqldump创建软连接ln -s /usr/loc...

2018-08-02 20:08:00 29

原创 8080 端口只允许内网访问配置

如果项目是通过nginx 代理访问的话,如果用户绕开nginx 直接访问我们服务器的话,nginx就没用处了。需要配置一下服务器例如tomcat 的端口 比如8080 只允许内网访问,外边不能访问。通过防火墙来实现。配置iptables-A INPUT -s 127.0.0.1 -p tcp --dport 8080 -j ACCEPT-A INPUT -p TCP --dport 808...

2018-08-01 15:49:00 402

原创 nginx 配置白名单

在http 模块 增加geo $remote_addr $ip_whitelist{ default 0; include white_ip.conf; }在location 模块 增加 (注意if 和($ip)之间有空格)if ($ip_whitelist = 0){ return 403; }在c...

2018-08-01 15:39:00 172

shiro使用简单Demo

基于url和注解的权限管理shiro简单易用的例子,好用易上手,适合初次接触shiro的人员,使用中如有疑问,可以留言,我修改了积分,只需要1积分便可下载,目的分享资源,不为其他。

2017-11-01

Catalina.out日志分割工具

liunx版本 tomcat log目录下catalina.out文件切割工具,防止长时间运行导致catalina.out文件过大占用过多内存,里面有 切割工具和使用说明文档。

2017-08-14

Redis 3.2.100 (00000000/0) 64 bit

windows 下redis 安装包

2017-08-14

空空如也

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

TA关注的人

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