自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 @AutoPipeline注解使用,自动生成责任链模板

在繁琐的业务流程处理中,通常采用面向过程的设计方法将流程拆分成N个步骤,每个步骤执行独立的逻辑。…}但是这样剥离仍然是不彻底的,修改其中一个步骤仍然可能影响其他步骤(同一个类修改,不符合开闭原则)。在这种场景下,有一种经典的设计模式-责任链模式,可以将这些子步骤封装成独立的handler,然后通过pipeline将其串联起来。总体来看,纯手动编写有以下问题:正确性:实现复杂度较高,短时间手工编写容易出错。

2022-09-28 11:44:08 542 1

原创 skwalking的trace-ignore、httpparam、dubboparam请求参数的追踪开启

一、开启trace_ignore,过滤对应的路径引入对应的pulginagent包下的optional-plugin文件夹下的apm-trace-ignore-plugin拷贝到agent包的plugin下在config下增加apm-trace-ignore-plugin.config文件内容为:trace.ignore_path=/actuator/,/eureka/,Lettuce/,Gson/,xhw-,com.alibaba.cloud.dubbo.service.DubboMetad

2022-01-20 17:16:12 1953

原创 classloader详解

基本知识sun.misc.Lanuch 是虚拟机的入口,会设置主线程上下文的加载器为系统类加载器( AppClassLoader),同时也会设置系统类加载器的父加载器为扩展类加载器。如果自己定义的加载器不设置父加载器则默认为系统类加载器。线程上下文加载器如果没有设置加载器则使用父线程的线程加载器。2、 java 程序在 idea 启动,会在 java -cp 设置我们的 classpath,比如会设置我们依赖的maven 仓库 jar 包位置等3、 但是, jvm 启动的时候,并不会一次性加载

2022-01-16 19:26:38 743

原创 dubbo-admin支持spring-cloud-dubbo

支持spring-cloud-dubbo具体项目代码https://github.com/luoxiangxing/spring-cloud-dubbo-admin一、修改的具体类1、org.apache.dubbo.admin.service.RegistryServerSync引入spring-cloud-dubbo的类@Resourceprivate DubboServiceMetadataRepository dubboServiceMetadataRepository;@Res

2022-01-13 23:11:21 862

原创 MappedByteBuffer再RocketMq上的优化

最近在参考阿里的rocketMQ来优化我们自己的mq,发现一段有意思的代码:MappedFile.javapublic AppendMessageResult appendMessage(final MessageExtBrokerInner msg, final AppendMessageCallback cb) {/*** 奇怪的地方在这里/*ByteBuffer byteBuffer = writeBuffer != null ? writeBuffer.slice() : this.ma

2021-05-20 16:24:31 921 3

原创 阻塞与不阻塞队列、各种队列区别、阻塞队列常用方法

阻塞队列的使用BlockingQueue 队列常用的操作方法: 1.往队列中添加元素: add(), put(), offer() 2.从队列中取出或者删除元素: remove() element() peek() poll() take()每个方法的说明如下: offer()方法往队列添加元素如果队列已满直接返回false,队列未满则直接插入并返回true; add()方法是对offer()方法的简单封装.如果队列已满,抛出异常new IllegalStateExcept

2020-11-07 16:10:21 509

原创 Spring与springboot扩展点

1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性。让使用者以最小的代价接入。想要把自动装配玩的转,就必须要了解spring对于bean的构造生命周期以及各个扩展接口。当然了解了bean的各个生命周

2020-10-19 15:42:52 210

转载 JDk动态代理,代理接口

JDK代理,代理的是接口,那么笔者想一想,既然代理的是接口,那如果没有实现类怎么办,能不能代理。答案是可以的,Mybatis就是这样的。Mybatis使用JDK动态代理来实现Mapper接口,事先保存好Mapper接口,和接口声明的方法,返回值,参数类型,然后代理类的方法调用的时候使用MapperMethod这个事先放入方法缓存里的对象来真实调用功能。笔者极度简化了一下代码:被代理的接口:public interface Subject2 {String selectById();}这个接口

2020-06-12 16:43:45 436 1

转载 理解悲观锁乐观锁、同步锁、读锁、写锁

ava 锁分类Java 中的锁有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用锁的分类,包括一些基本的概述从线程是否需要对资源加锁可以分为悲观锁和乐观锁 从资源已被锁定,线程是否阻塞可以分为自旋锁 从多个线程并发访问资源,也就是 Synchronized 可以分为无锁、偏向锁、轻量级锁和重量级锁 从锁的公平性进行区分,可以分为公平锁和...

2019-12-27 16:00:34 3774

转载 Tomcat配置,maxTread,maxConnections

properties.yml配置: (spring版本2.1.3RELEASE) 能点住ctrl左键点击跳转说明配置是正确的server:#tomcat配置tomcat:# 当所有线程都在使用时,建立连接的请求的等待队列长度,默认100accept-count: 1000# 线程池维持最小线程数,默认10min-spare-threads: 4# 允许最大连接数,默认10000,当...

2019-11-21 15:38:19 2533

原创 文件IO与网络IO的理解,多路复用技术与reactor模式的关系

1、文件IO与网络IO1.1专有名词之前一直对IO一知半解,所以整理下IO各种概念与IO读取数据的流程,先了解一下专有名词:(1)用户空间 / 内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操...

2019-06-17 00:30:33 3109 4

原创 IDEA的Version Control控制台使用与IDEA推送新项目到Gitlab

log标签的不同颜色表示的意思(1)黄色代表HEAD, 绿色表示的是你本地分支, 紫色是远程分支, 如果你看到一个标志是黄绿蓝, 表示当前HEAD和你远程还有你本地,都有这个分支.黄色只是表示HEAD的位置,没其它含意如果你看到一个提交只有紫色分支,表示你本地没有这个分支. 如果你看到一个是紫色和绿色,表示这个提交是远程分支并且你本地也有这个分支.如果你看到一个提交只有绿色,表示这只是你本地...

2019-06-12 19:30:36 2484

转载 设计模式-模板方法

原文:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.htm一、简介模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。二、模板方...

2019-01-08 13:54:49 114

原创 try(){} catch(){}使用

2019-01-03 16:55:53 4929 1

原创 通过反射获取实例化对象的所有的属性值

1、model是一个已经实例化后的对象Model model = new Model();2、获取model的所有的属性的值Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组Field[] field = model.getSuperClass().getDeclaredFields()...

2018-12-20 16:26:59 3275

转载 实现扫描包中的所有类

1、使用现有库转载自:https://blog.csdn.net/u014527058/article/details/79035090

2018-12-19 14:17:43 157 1

原创 Spring框架中在启动时使用自定义注解与加载自定义注解

1、假设我自定义注解 NameSpace@Target(ElementType.METHOD) //指定注解的使用范围为 方法@Retention(RetentionPolicy.RUNTIME) //运行时生效public @interface NameSpace { /** * Name Space * * @return...

2018-12-19 10:42:18 5229 7

原创 mybaties参数失效

1、在mapper接口中传入pagebaseMapper.getPage(Page page,@Param(“date”)Date date);2、xml中定义sqlselect a.id,a.name,a.color as name from book where create_time >=#{date}这时候返回两个字段名一样,都是name,这个时候page参数中的total...

2018-12-18 14:33:31 508

空空如也

空空如也

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

TA关注的人

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