自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 百度地图API添加标注、信息窗口openInfoWindow

主要写一下使用百度地图api遇到的问题以及解决方案吧。申请ak就不说了。直接说步骤。首先页面放几个div 很明显一个是根据区域搜索的:比如北京上海之类的,第二个根据自己的数据库条件查询结果,第三个用来装地图的<div id="search" style="border:0px red solid;height:26px;"> <div style="float:lef...

2020-05-07 11:18:00 10252

原创 Netty注解实现服务调用

在之前完成了原生服务间的简单通信,现在我们将它整合到Spring环境中,这里就以实现服务的远程调用,简单模拟即可,具体代码需要自己动手改造。新建代理类,这里简单上送个参数和方法名即可,服务端响应不做处理,你理解我的目的就行。每次使用都还要先获取代理对象,很麻烦,代码升级,实现注解直接调用。既然是服务调用,那我们就使用代理模式来实现。将模板注入到spring中。这样是不是很高级的感觉了呢。

2023-08-14 14:03:32 226

原创 Netty客户端同步获取结果

上次服务间通信是异步的,现在想实现客户端同步拿到服务端响应结果。在NettyClientHandler类中增加一个结果缓存器。

2023-08-09 15:18:01 639

原创 Netty自定义编码解码器

2、定义编解码器import io.netty.buffer.ByteBuf;上次通信的时候用的是自带的编解码器,今天自己实现一下自定义的。

2023-08-08 15:41:54 818

原创 记录一次socket交互

/这个很重要,表明头元素是谁。获取到的相应报文如下所示。

2023-05-27 10:41:03 98 1

原创 nacos自定义注册服务信息

nacos自定义注册服务信息

2023-01-07 20:41:56 363

原创 学习netty之服务通信

netty框架进行服务通信

2023-01-06 21:29:24 135

原创 ThreadLocal plus

ThreadLocal PLUS

2022-11-30 20:27:25 71

原创 Redis与Spring Cache

Redis与Spring Cache。

2022-11-26 11:20:05 248

原创 JDK序列化与反序列化

jdk序列化与反序列化

2022-11-01 14:36:38 585

原创 自定义类扫描器

自定义一个类扫描器

2022-10-14 13:39:20 157

原创 Java中理解多态以及日常使用

1、多态的条件:发生在继承体系下。

2022-10-12 15:44:39 196

原创 springcloud整合seata

springcloud整合seata解决分布式事务

2022-08-13 15:18:52 2256 2

原创 shell脚本实现遍历文件夹查找指定文件

shell 脚本文件夹递归

2022-07-03 21:03:57 4358 1

原创 统一管理session

老项目ssh 要限制用户做唯一登录,比如在谷歌浏览器登录之后,然后再用IE登录,那么谷歌 上的用户就会失效,项目用的session。所以记录一下如何管理,接下来演示代码以springboot的使用测试,原理一样。主要以session监听器做处理操作。项目的权限校验使用拦截器做处理@Componentpublic class LoginIntecptor implements HandlerInterceptor { @Override public boolean preHandle

2022-04-23 20:14:03 456

原创 Semaphore、CountDownLatch、CyclicBarrier源码解读

主要还是为了自己再记得清楚一点,加深印象,免得日后忘记。Semaphoresemaphore主要提供了两个api。有点类似我们在购物通道中,只允许站下三个人,当第四个人过来的时候则要等待前面的人走掉。//可以控制同时访问共享资源的线程个数Semaphore semaphore = new Semaphore(3);//通过 acquire() 方法获取一个信号量,信号量减 1,如果没有就等待;semaphore.acquire();release() 方法释放一个信号量,信号量加 1sema

2022-04-09 16:32:12 523

原创 ReentrantLock源码分析

ReentrantLock 可以实现公平锁和非公平锁,他默认实现是非公平锁,ReentrantLock 中公平锁和非公平的体现在哪呢,我们等下来说,现在开始研究非公平锁,这个会了,公平锁也就会了。 //创建一个ReentrantLock ReentrantLock lock = new ReentrantLock(); //点击进去看构造方法 见名知意 public ReentrantLock() { sync = new NonfairSync(); } //

2022-03-18 17:39:02 571

原创 手写常用限流算法

1、令牌桶算法这是关于令牌桶的定义,我也不用去解释了,直接百度就OK。平时我们可能会使用guava的RateLimiter。我个人的理解是感觉该接口每秒可以请求的次数。那么我们根据该解释来手动去实现一个所谓的令牌桶算法。令牌桶首先要有一个桶对吧,还要有令牌、还要实现平均发送令牌,桶满了丢弃等,那么你们有思路了吗,开始diy吧。import java.util.concurrent.LinkedBlockingQueue;/** * 简单实现令牌桶算法 */public class MyRat

2022-03-16 09:03:29 1620

原创 单例真的单?

单例是真正意义上的单例吗?我们下面先上单例代码public class Sington { private static volatile Sington sington; private Sington(){} public static Sington getSington(){ if(sington==null){ synchronized (Sington.class){ if(sington==n

2022-02-12 20:07:34 1188

原创 docker-compose实现容器编排

私立马赛同志们,继续卷起来啊讲真的docker非常好用,感触最深的就是安装软件上面,比如我在本地安装一个东西,搞这搞那的可能半小时,docker直接一两分钟就解决了。这次呢就搞一下docker-compose实现容器的编排技术。什么是容器编排呢?比如我们在部署服务的时候,可能需要安装nginx、redis、mysql等等,一个一个的docker pull docker run 是不是也变的麻烦起来了,然后docker-compose可以解决这个问题。看该文章的基础建立在你会使用docker的基本命令。

2022-01-22 15:19:33 1320

原创 深入理解HashMap源码之hash值的计算和用处

他来了他来了,终于来了一个深入理解了。文章开始之前先理解一下<< >> >>>的含义<<:左移 x<<y的含义为:x*2^y (x乘以2的y次方),比如2<<2结果是8计算过程如下#2的二进制为10 我们补成8位来计算0000 0010 #2的二进制左移两位,左边移动后的去掉,右边补零,所以得到此结果#该结果转换为十进制就是8,其他数的计算方法也是如此0001 000 比如5<<4

2022-01-16 21:25:16 587 1

原创 canal整合rabbitmq

canal1.1.5好像就开始支持rabbitmq了,然后我下载的是1.1.6,为啥要整合rabbitmq,首先其他mq我也不会啊,其次各有所需对吧。首先要修改canal.properties文件## tcp, kafka, rocketMQ, rabbitMQ, pulsarMQ 修改为rabbitmq canal.serverMode = rabbitMQ## 配置上我们的rabbitmq信息rabbitmq.host = 8.142.188.187rabbitmq.virtual.h

2022-01-13 16:08:00 3043 7

原创 简单实现单点登录

什么是单点登录就不用再说了,今天通过自定义sessionId来实现它,想了解的可以参考https://www.xuxueli.com/xxl-sso/讲一下大概的实现思路吧:这里有一个认证中心,两个单独的服务。每个服务去请求的 时候都要经过一个过滤器,首先判断该请求地址中有没有sessionid,有的话则写入cookie ,如果请求地址中没有sessionid那么从cookie中去获取,如果cookie中获取到了则证明登录了,放行即可。否则跳转到认证中心,此时把请求地址当做参数带到认证中,认证中心认证成功

2022-01-12 17:16:49 543

原创 rabbitmq实现死信队列

所谓的死信队列,也就是我们说的延迟队列。其实现方式就是给普通队列绑定一个所谓的死信队列,给消息设置一个过期时间,在该时间内如果消息没有被消费,那么则会进入死信队列。下面开始整活。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId>

2021-12-29 09:24:46 1252

原创 第一次使用nacos常见报错

1、版本不匹配创建一个普通的springboot项目,我使用的是官方初始化创建的,所以版本为最新版本,由于我使用的nacos是1.1.4,所以这个时候版本不匹配整合也会出现问题,需要降低springboot或者升级nacos版本即可这里我选择降低了版本,主要是下载nacos比较慢贴上使用nacos需要的依赖 <!--服务的注册与发现--> <dependency> <groupId>com.alibaba.cloud&lt

2021-12-27 09:56:10 4165

原创 解决东方通部署项目后访问服务器上pdf文件

我们之前使用Tomcat部署项目的时候为了能直接打开PDF,我们通常会在Tomcat里面增加一行配置<Context docBase="D:\AIMSDocument" path="/pdf"/>如果你是springboot项目的话,应该是这样的registry.addResourceHandler( "pdf/**").addResourceLocations("file:D:\\AIMSDocument\\");但是在东方通上,只能在项目上的内部文件才可以访问,这样就行不通了,该如何

2021-11-26 08:58:36 1625

原创 解决aop失效问题

我们实现类的某个方法调用另一个方法的时候会出现代理失效的问题,如下所示,这样会导致getList2查询的时候@MyTes注解失效@Override @MyTest public List<SysUserEntity> getList(SysUserEntity sysUserEntity) { return sysUserMapper.getList(sysUserEntity); } @Override public List<

2021-11-17 09:09:38 619

原创 设计模式记录

工作中我们会用到设计模式来帮助我们更好的写代码,下面就慢慢的记录我使用到的吧1、单例模式在这里我用链接温湿度传感器为例,使用socket链接的import java.net.Socket;/** * socket链接 * @author ljw * */public class SingtonSocket { private static volatile Socket client = null; public static Socket getInstance(String

2021-11-09 17:04:18 286

原创 微信小程序第三天

这两天的学习效果,简单写个小页面,记录个笔记首先看一下效果index的HTML代码<view> <swiper indicator-dots indicator-color="red" autoplay interval="2000"> <block wx:for="{{imgUrls}}" wx:key="index"> <swiper-item> <navigator url="/pages/image

2021-10-29 16:45:43 85

原创 自定义配置信息

使用springboot的时候根据要求使用别人的配置,今天我们尝试一下自定搞一个玩玩,示例如下首先要有一个配置类信息@EnableConfigurationProperties(value = {MyConfig.class})@ConfigurationProperties(prefix = "my.config")@Datapublic class MyConfig { private String name="default";//默认值 private String ur

2021-10-29 14:57:03 96

原创 记录微信小程序第二天

使用小程序肯定离不开数据的渲染,微信提供的有wx.request,但是很多请求要写很多方法,想想都很麻烦。wx.request({ url: 'http://127.0.0.1:8088/test/imgs', method: 'get', success:function(res){ } })由于我习惯使用vue,所以呢我也要封装一下,方便日后重复使用首先我在utils文件夹下面新建request.js

2021-10-28 20:26:00 78

原创 记录微信小程序的第一天

开发工具下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html安装完毕之后,打开之后会弹出框,我们要点击测试号,不使用模板,完成即可记录第一天的使用学习<view class="mainView"> <button size="mini" type="primary" bindtap="but">点击增加{{num}}</button></view>

2021-10-23 10:37:33 7152

原创 自定义注解支持EL表达式

在日常工作中,我们经常需要自定义注解去满足自己的需求,一个注解里面一般都会定义几个参数以便于我们获取值使用的,但是偶尔我们也会有这样的需求,需要根据前端传过来的参数进行动态的传参,那么我们该如何去使用呢,接下来我贴上一个demo进行验证。这是我们要使用的注解,很常规import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Inherited;i

2021-10-15 19:35:42 867

原创 记录一次泛型的使用

之前着急写了一段代码,其中除了传入的类型不同之外,代码执行逻辑是一致的,所以我想优化一下,这里记录一下优化过程。以前代码大致长这样优化提取公共代码如下,主要使用到了泛型和反射的功能现在就长这样了优化的核心代码如下public <T> List<T> resultDataList (List<T> list,List<Integer> collect) throws NoSuchFieldException, SecurityException,

2021-10-15 14:55:42 60

原创 canal继续

整合springboot更方便的使用功能。先下载该项目。canal服务可以看我上篇文章https://github.com/stormbirds/spring-boot-starter-canal将该项目生成jar包1.下载完成进入项目根目录starter-canal 中 命令行如下: mvn install2.等待打包完成 target目录下生成 starter-canal-0.0.1-SNAPSHOT.jar3.在当前目录下输入命令: mvn install:install-file "-Dg

2021-10-12 18:54:18 251

原创 springboot配置多数据源

这两天的学习得知,springboot配置多数据源可以分为两种方式,一种是分包的形式,一种是基于aop的形式。各有优缺点,看自己了。今天简单来实现一下基于aop的形式。首先是我的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> &

2021-09-23 09:45:59 1048

原创 ELK初体验

前提保证是es es-head logstash都安装好了 <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>5.3</version> </dependency>reso

2021-09-15 09:49:23 83

原创 canal初体验

下载地址:https://github.com/alibaba/canal/releases下载后解压,然后去到conf/example里面配置instance.properties,其他的先不用动,主要是为了体验一下,所以简单的修改一下数据库账号密码即可我在window电脑下使用的,进入bin目录,双击start.bat 如果启动报错如下那么修改启动文件,这一段删掉即可然后我们来看一下示例代码:https://github.com/alibaba/canal/wiki/ClientExam

2021-09-08 16:08:21 135

原创 SpringBoot使用Minio简单操作文件

https://docs.min.io/官方文档下载后启动,例如我的:.\minio.exe server F:\tools\minio启动成功后如下显示,里面包含控制台访问接口,用户名密码其他的先不说了,下面直接最简单的使用方式贴出来。基于springboot的依赖,java的额可以参考文档<!-- minio --> <dependency> <groupId>io.minio</groupId> <artifactId&

2021-08-26 10:21:52 660

原创 学习一下微信公众号的开发

简单记录一下微信公众号之订阅号的开发。首先是官网地址:https://mp.weixin.qq.com/首先要注册用户,注册登录进来之后,我们找到接口权限,由于是个人的,权限很少,能做的事非常少,如下图。这个时候,为了我们开发者使用,我们去使用测试的。退出账号,找到开发文档我们找到接口权限,可以看到,这里的权限较高,方便我们开发使用点进去,扫码登录1、开始接入,该地址是我用内网穿透工具映射到本地80端口地址,详情可见https://developers.weixin.qq.com/d

2021-08-20 20:13:46 861

starter-canal-0.0.1-SNAPSHOT.jar

starter-canal-0.0.1-SNAPSHOT.jar

2021-10-24

需要的jar包依赖下载

需要的jar包依赖下载

2021-07-02

Nginx服务启动.zip

nginx-service.exe

2021-07-01

空空如也

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

TA关注的人

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