java
木易臣己
这个作者很懒,什么都没留下…
展开
-
jdk动态代理和cglib动态代理实现及区别
代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式又分为:静态代理、jdk动态代理、cglib动态代理。由于静态代理会产生过多的代理类,一旦接口增加方法,目标对象与代理对象都要进行修改,不易维护。而动态代理是动态地在内存中构建代理对象,从而实现对目标对象的代理功能,接口增加方法时代理对象不受影响 。下面我们讲讲jdk动态代理和cglib动态代理实现及区别cglib动态代理原创 2022-07-05 14:55:52 · 350 阅读 · 0 评论 -
springboot+redis实现延迟队列(内含Redisson版本)
原理:开启一个守护线程对消息进行轮询消费,利用zset的有序性,将到达过期时间的消息去除,不能的实现类处理不同的业务。2:延迟队列类3:延迟消息消费类 开启一个线程进行消息的消费4:示例2:延时消息处理器接口3:示例三:项目demo地址......原创 2022-07-05 14:36:33 · 2012 阅读 · 0 评论 -
java注解实现方法失败重试
一:注解二:切面三:使用原创 2022-07-05 14:05:35 · 899 阅读 · 0 评论 -
springboot整合dynamic-datasource实现
一:依赖引入二:修改配置文件三:自定义拦截器通过参数切换数据源四:注解切换数据源五:项目demo示例dynamic-datasource-demo原创 2022-06-13 11:25:32 · 893 阅读 · 0 评论 -
java 英文翻译工具类
java 英文翻译工具类原创 2022-06-07 17:43:54 · 3442 阅读 · 2 评论 -
分布式锁的实现之 redis 篇
引言在多线程的环境下,为了保证一个代码块在同一时间只能由一个线程访问,Java中我们一般可以使用synchronized语法和ReetrantLock去保证,这实际上是本地锁的方式。但是现在公司都是流行分布式架构,在分布式环境下,如何保证不同节点的线程同步执行呢?实际上,对于分布式场景,我们可以使用分布式锁,它是控制分布式系统之间互斥访问共享资源的一种方式。实现Redis 锁主要利用 Redis 的 setnx 命令。加锁命令:SETNX key value,当键不存在时,对键进行设置操作并返回成原创 2020-06-12 16:12:57 · 179 阅读 · 0 评论 -
synchronized锁字符串问题 + String.intern()解决 + google的Interners解决 java单机锁
一:String.intern()解决比如需要锁住的商品id是Long id = 1000;synchronized (id.toString().intern()){//do...}造成的问题:常量池有限,存储在hashtable中,数据多了之后,碰撞厉害,而且容易加重full gc负担 。二: google的Interners解决在类级别初始化** Interners.newWeakInterner()**public class test{ private static I原创 2020-05-09 17:48:07 · 2816 阅读 · 1 评论 -
spring,springboot之事务(事务隔离级别详解)
事务隔离级别1:DEFAULTDEFAULT 这是spring默认的隔离级别,表示使用数据库默认的事务隔离级别。另外四个与JDBC的隔离级别相对应。2:READ_UNCOMMITTEDREAD_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻读。3:READ_COMMITTEDREAD_COMMITT...原创 2020-04-27 14:47:03 · 8171 阅读 · 1 评论 -
spring,springboot之事务(事务传播机制详解、嵌套事务)
spring,springboot之事务(事务传播机制、嵌套事务、事务隔离机制详解)原创 2020-04-27 14:31:53 · 8893 阅读 · 13 评论 -
maven使用,将项目上传到私服,将第三方jar上传到私服,将私服的项目下载到本地
将自己的项目上传到私服上传到单独的仓库一:配置maven的setting.xml// #在servers标签下配置 <server> <id>nexus</id> <username>admin</username> <password>123456</password> </serve...原创 2020-04-23 20:47:30 · 2298 阅读 · 0 评论 -
maven使用,Nexus配置阿里云代理仓库,三方仓库,本地仓库
Nexus默认远程仓库为https://repo1.maven.org/maven2/,慢死,还常连不上。添加阿里云代理仓库# urlhttp://maven.aliyun.com/nexus/content/groups/public显示 Ready to Connect就OK了aliyun添加到仓库组添加三方仓库组用来上传三方jar设置允许redeploy...原创 2020-04-23 17:24:26 · 6174 阅读 · 0 评论 -
SpringBoot项目jar包的启动Shell脚本,java -jar方式
start.sh#!/bin/bashtpid=`cat tpid|awk '{print $1}'`tpid=`ps -aef|grep $tpid|awk '{print $2}'|grep $tpid`if [ ${tpid} ];then echo $tpid kill -9 $tpid echo 'Demo is kill!'else rm -f tpid to...原创 2020-04-20 18:10:35 · 1367 阅读 · 0 评论 -
easyexcel导出excel,大数据量100万以内分页查询zip格式导出
easyexcel导出excel,大数据量100万以内分页查询zip格式导出准备工作整体思路controller层service层mapper层VO表结构测试备注easyExcel准备工作maven+springboot+mybatispom添加.// maven依赖<dependency> <groupId>com.alibaba</groupId&...原创 2020-04-19 15:21:56 · 4158 阅读 · 32 评论