自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一个业务处理应用的head first设计

一个业务处理应用的思路设计,配图为参加csdn活动的照片。请提建议或者意见。

2023-01-15 20:17:13 130

原创 mybatis源码整体结构分析与plus的扩展(结构图完成)

初步分析一下mybatis的原理,以及mybatis plus的扩展实现。整理出一个结构图方便记忆。

2022-04-04 23:24:56 1358

原创 rabbitmq-java-client源码结构设计与分析

rabbitmq-java-client源码中使用nio很有特色,分析一下。

2022-03-31 22:56:12 2414

原创 一些常见框架中的数据传输方式与处理类的设计

## 一、前言​ 最近做了一个技术交流,主要是某银行系统中的服务编排处理框架原理。框架的采用对业务人员与技术人员进行了很好的分工。后来在做一个项目中碰到了一个数据传输处理的方法感觉也很有意思,结合之前在学习spring中碰到的框架处理方法,做一个设计总结。​ 总的来说,看过不少框架后,感觉银行的框架中规中矩,四平八稳,过程简单,容易理解。但缺少一些著名框架中的亮点与艺术感,比如抽象层次丰富,开发人员最小化工作,特别是元处理类(类比元数据)的强大。 对处理类进行配置,解析并存放在m...

2021-07-04 22:23:37 179 2

原创 如何设计一个结构合理的java项目

1、前言最近写一个Java处理工具,是一个springboot的非web项目,正好借这个机会总结一下自己的经验,当开发一个Java应用时,应该全局考虑哪些方面,包括如何划分功能包,如果建立对象关联,以及如果串起流程;另一方面在这个过程中,作为喜新厌旧的程序员,全面应用Jdk8的新特征,比如其中的语法糖还是蛮甜的。2、类划分功能包web项目是很多人接触最多的项目,与工具项目有相似点,也有不同点。一般的单体的web项目通常的包,表面上按这样划分:多层次业务模块->controller->se

2021-02-07 20:00:20 1158

原创 [笔记]windows安装docker toolbox后将springboot应用提交docker镜像库

目的之前写了一个mini-tcc的测试springboot,想到在自己的windows弄个docker试试,以前在centos上装过docker,很久没玩了。这次写的这个过程基本上从网上查方法实现的,没啥新意,本没必要写出来,不过在这个过程中也碰到一些坑,而且自己写笔记记录一遍印象深,所以写一篇操作过程。整体过程:你提交代码到仓库,如果是getlab,使用webhook自动触发拉取,不是的话就配置cron表达式定时构建,jenkins拉取到代码后,需要进行构建,测试,打包,一系列操作,这是最基本的,姑

2020-06-13 21:15:05 183

原创 用AOP与Threadlocal实现超简单TCC事务框架

TCC是处理分布式事务的一种技术,每个服务提供者提供TRY/CONFIRM/CANCEL三个接口,分别对应资源锁定,提交,取消操作。看到github上有些复杂完善的TCC框架,本着简单用AOP与ThreadLocal来做一个简单的框架,验证下自己的想法是否可行,同时练练手。其中的TCC三调用的方法切换,以及考虑后续要使用try返回值处理,本人采用了一种投机取巧的方式来实现。一、主要目标只考虑几个简单的目标1. TCC调用的关系信息每个TCC服务调用一般都要包装一下,而且要先定义好谁是TRY,谁是C

2020-06-10 15:22:50 556

原创 汇总并对比几个数据库存储相关的知识

第一次看数据如何存储到文件中还是看rocketmq时,它的存储功能里是顺序写消息文件,又有线程给数据建索引文件,文件中前一块是一个个固定字节的hash-slot,后一块是固定字节长度的消息地址数据的节点,链接在一起。内存中的结构,比如hashmap,树都是相对简单的,指针就是内存地址,有JVM帮你分配和回收。但文件里的就不一样了,考虑数据占用,所在文件与偏移量等。长度,占用与回收等更复杂的问题要自己设计了。知识需要往深里学,这对于真正用好它们很重要,所有应用软件之中,数据库可能是最复杂的,用了很久却不知道

2020-05-29 18:01:05 1197

原创 分析几个有名中间件源码的核心类的设计

分析几个有名中间件源码的核心类的设计分析过不少中间件产品后,自己也设计过产品后,也需要在更高的高度上总结一下。本文先总结了一下核心类的定义与主要的设计特点,再进一步用druid,rocketmq,spring-jms等源码的核心类进行说明(包括启动/停止),之后还介绍了一下dubbo的核心类在哪?(它更像一个产业链结构,核心类控制采购与销售,中间可能层层外包出去)在讲核心类之前,其实在软件系统有之前,我们的社会组织,或者企业组织,都是这么个结构,核心类就是中央,就是总经理。当然也有与dobbo对应的组织

2020-05-15 18:17:03 403

原创 从spring cloud到k8s,istio(serviceMesh)的学习笔记

​ 最近在学习k8s与serviceMesh技术时,由于发现网上内容概念太多,太乱,太细,很多文章就是COPY很多基本知识,与我期望的认知过程不符合,所以写这样一个学习笔记。不讲安装,不讲demo,只是整合一些知识点,并理清相关的概念与关联,形成一个知识框架方便记忆与使用。​ 因为水平有限,有些知识点还是自己猜测的,有不对的请各位看官指正。一、从docker到k8s开始用docker还是比较...

2020-04-27 18:51:12 5280

原创 spring-jms的接收消息功能的设计思考

1、前言JMS即Java消息服务,面向消息中间件的API。本文研究过源码,试着分析一下如何从基本的使用方式,到整合进spring的方式的思考,来提高自己的系统设计能力。只分析消息接收处理过程,话说spring-jms是整合jms的使用,而springcloud-stream是自己实现了一个发送接收过程,通过设计binding对接消息中间件上。2、jms接收消息jsm是标准接口,具体的产品...

2020-03-30 23:31:57 435 2

原创 springboot的aop自动代理实现分析笔记

目的aop功能是spring的核心功能之一,本文分析一下作者的设计思路。之前写过一些源码分析,发现写的太细,代码太多根本不方便记忆,所以这次简单的写一写,重点是思路。一、先上结构图二、springboot关于aop自动代理的实现springboot的自动配置类–>AopAutoConfigurationt很简单,只是引入spring-framework的@EnableAspec...

2020-03-22 23:01:55 1114

原创 回忆背调业务核心组件的开发

​ 这是我第一次做java技术比较全面和复杂的系统,当时刚从事互联网开发,它与传统单机增删改查的Web应用差别很大,那只是业务复杂。当时除了学习很多工具技巧外包括maven/git使用都才入门,线程处理的相关技术整合使用还不多,自己一个人一下做这个还是蛮有压力的,新的工作需要打响第一炮。这时我只看过一部分dubbo与druid源码,有了些想法,最后一步步也顺利完成了。​ 开发一个系统其实就...

2020-01-11 00:11:55 558

原创 springcloud stream binding 源码与使用学习笔记

前言​ 刚看到Stream的功能是对接mq产品,以为就是包装一些mq产品接口,实现自动装配后统一使用。但看了一个简单的demo,是使用rabbitMq产品的binder,还有输入输出接口方法通过配置,来对应不同的mq产品。所以作者实现的功能是在自己的channel与mq产品之间做了一个binder,这样方便的改变配置就使用多个mq,也可以方便的换不同的mq。​ 但是这些stream的chann...

2020-01-08 23:19:20 4519 5

原创 基于netty的通讯协议的设计思考

序:本文分析了dubbo,rocketmq,以及我们自己项目中的通讯协议的设计与使用。分析了如何设计一个通讯协议。一、dubbo协议的设计协议比如说是dubbo,传输可能是:mina、netty、grizzy,序列化可能是:dubbo、hessian2、java、json 。那么这一切都是如何从业务过程中关联起来,并且如何设计的呢?1. 从rpc到remote一个接口方法的动态实现了远程...

2019-12-28 00:14:17 488

原创 spring与tomcat的关系逆袭前后的设计分析

servlet(3.0以上版本)包含谁启动谁,如何产生servletContext,spring ioc与mvcioc,dispatchServlet谁产生,如何注册与初始化。servlet为主启动时servlet容器启动时,会通过SPI,在一个文件中找实现了ServletContainerInitializer接口的类,该类被容器自动加载并执行其onStart方法。当spring需要被...

2019-12-24 23:48:28 2452

原创 xgboost学习笔记

1. 介绍以前看过一点CNN图像识别,这两天看一下基于树的XGBOOST。先了解其原理,加上自己不成熟的直觉理解,还有几个疑问。最后用一个例子,使用python试用一下,仅作为学习笔记,不系统整理下来,就会看了又看,忘了又看。我觉得直觉理解的好处是更容易记忆,更容易触类旁通,也容易归纳与推广。有时候解决问题就是直觉+验证的过程陈天奇在Quora上的解答如下:引用:https://ww...

2019-12-12 16:29:19 274

原创 对已有多个同类功能产品,进行集成的经验总结

经人提醒这一年写的文章不多,一方面是因为同类的技术如果没有自己的体会不写,太我简单的也不写。去年多在学习各种各样的新接触的技术,还没有足够的经验与体会总结。最近对各种已有技术的集成方面,总结点个人经验。一、问题来源比如当我们的系统需要引入日志产品时,已经有多种日志的实现了,比如log4j,logback,还有日志门面slfj等,我们不需要自己会开发,但我们需要根据不同的条件,或者配置,或者...

2019-11-27 23:37:41 696

原创 RxJava的核心原理是不是这样的?

最近看到RxJava技术,好奇就网上找了些关于RxJava的博文,但绝大部分文章都讲了其使用,可我对最基本的东西——概念还是一脸懵逼。 这些文章看后,大概我知道两个重点,一是类似于观察者模式,二是任务执行与通知可以设置不同的线程。具体这个框架源码怎么做的就不知道了。看源码太累了,很多有名的产品其实最核心的原理很简单,demo也很好实现。比如dubbo,就是客户端把...

2019-11-24 16:41:46 215

原创 rocketmq源码分析、整体结构与类关系设计的思考

前言: 本文目的:一个复杂的中间件是如何从整体上分模块以及设计核心类之间关系 一些重要场景的设计分析与设计模式使用 有哪些抽取的公共模块,公共底层的东西及如何重用一、简介: RocketMQ是一款分布式、队列模型的消息中间件,是阿里巴巴集团自主研发的专业消息中间件,借鉴参考了JMS规范的MQ实现,更参考了优秀的开源消息中间件KAFKA,实现了业务消峰、...

2019-11-22 16:57:14 560 2

原创 dubbo的ExtensionLoader源码学习后的架构设计思路总结

最近看了一下dubbo的extension部分,作为微核心重要组成的加载实际类对象的通用组件,类似于spring IOC的基础地位,确实是非常重要的功能。 [b]本文重点介绍dubbo的容器,微核心化,以及微核心如何在运行时,从容器中选择实例,变成真核心的过程。[/b] [b][color=red][size=small]希望看过的朋友可以留言,不管是什么写的太...

2018-09-10 18:04:38 177

原创 模仿dubbo的与spring无缝集成的RPC演示框架

    Dubbo以前也看过些源码,正好同事写了一个基于netty的通讯架构,想自己试试模仿dubbo,使用此通讯架构写一个RPC框架学习一下。根据百度百科定义:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。我的目标仅是实现一个与spring集成的rpc调用框架。     初看了一下dubbo的解...

2018-07-30 13:34:06 876

原创 模仿dubbo的与spring无缝集成的RPC演示框架

Dubbo以前也看过些源码,正好同事写了一个基于netty的通讯架构,想自己试试模仿dubbo,使用此通讯架构写一个RPC框架学习一下。根据百度百科定义:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。[b]我的目标仅是实现一个与spring集成的rpc调用框架。[/b] 初看了...

2018-07-29 16:31:33 305

原创 通过监听与过滤器模式使用来体会java中对象关系

作为面向对象的语句,java的三大基本特性:封装、继承、多态。但随着做的系统越来越复杂,发现组织对象之间的关系是更重要的技能。spring我认为IOC容器的好处之一就是方便的组织系统中的对象关系。 感觉用java后,有了一个模仿现实世界,来组织软件系统的方式。越来越感觉软件设计如同生活场景设计有相似之处。想到一句话,人的本质是一切社会关系的总和。正好也体会到,组织好系统中对象的各...

2018-07-08 23:43:08 200

原创 微服务(SOA)的编排与编制及组合的分析与实践

最近在开发公司产品的核心主业务,因为此业务需要串起多个子应用,子应用都已经独立部署,而且拆分的独立应用非常多。比如企业任务子应用,订单子应用,任务执行总控应用(内含很多个子任务执行子应用),签章子应用,支付子应用,未来还有核算子应用,报告子应用。 在这样一个核心业务中的各相关应用调用中,有可能中断被介入,也可能部分必须同时完成,也可能应用宕机等情况。笔者之前一直做单体应用,刚从事...

2018-05-31 16:12:33 2753

原创 我所理解的restful风格

第一次看到时,看几个例子,心想这个风格很好理解,貌似是蛮简单的规范嘛。最近又看到几篇文件,对restful有了更深的理解。感觉网上很多帖子都是比较雷同的,只能知其然,而不知其所以然,更不知道来龙去脉,所以不能很好的应用或者弃用、甚至发展一个技术。 没有时间找全各种资料来总结,目前只能凭一些资源中的线索,大概猜测一下这些问题,给自己一个回答。 当我们做一件事情时,最主要...

2018-02-11 00:06:41 760

原创 spring中service事务配置传播隔离等关系

[b]工作中正好碰到这个问题,于是学习以下两个文章。先介绍了一些知识。后加入了对知识的分析,方便理解。并对可能的原理进行推测,以后有空看源码。[/b] [url=http://blog.csdn.net/yangchangyong0/article/details/51960143]文章一[/url] [url=http://blog.csdn.net/albertfl...

2017-09-30 16:03:34 426

WebService的用户控制方式与加密算法分类

我们的系统中,所有的WebSerivce都由权限控制的。记录在此备用!一、示例ws[code="java"]@Service@Transactional@WebService(endpointInterface = "com.mycompany.sms.ws.SmsService", targetNamespace = "http://www.mycompany.cn/...

2017-09-13 16:40:55 327

WebApplicationContext、DispatcherServlet与web容器的ServletContext关系

用spring框架开发web应用少不了理解WebApplicationContext、DispatcherServlet与web容器的ServletContext关系。[b]发现很多贴子,分析了代码,写了一大堆关系,最后还是让人看的云里雾里的。我相信,一个产品的基本设计思路都是简单明了的,在这个指导下,才写出了复杂的代码。分析代码最后应该回归到作者的原始思路,这样才能知其然...

2017-09-13 10:48:05 324

原创 尽量把OAuth2.0的原理讲透透的

最近在补架构师图谱里的内容,OAuth2.0是其中一块,抽空看了几个文章,理解了一下。 不过我感觉多数文章都不是很直观,花费了好久才理解其中的过程,以及为什么要这么设计,也许里面还有一些为什么没搞清楚。 于是我试着写出来,用更好的方式来理解OAuth2.0。[size=large][b]一、OAuth2.0是什么[/b][/size] 我们经常...

2017-08-29 18:41:36 2082

原创 仅用SQL得到的复杂统计数据的例子

正好前不仅和朋友交流数据统计技术,就想写一个关于我如何进行统计的文章。在我们的一般的信息化项目中有这么几大块技术点: 1.后台J2EE技术架构。实际变化不大,多数时候用一个架构多年可以不变,加上脚手架代码,所以通常没有难度,也无法进一步提高工作效率。 2.前台技术。用的比较杂,多是基于jquery的框架,现在尽量用Bootstrap吧,easyUi也用,普通的jsp...

2017-08-21 20:45:55 1034

原创 信息化项目的"升维"设计、“降维"开发与需求分析经验

做开发的人员,通常都少不了抱怨,这需求怎么又变化了?改改改,加班、加班... 那么在设计的时候,有没有可能以通用的架构,不变应万变呢? 如何让一个系统设计的尽可能灵活,就需要适当的“升维设计”,而在权衡可变性,时间,成本的时候,又需要“降维设计”。[size=large][b]一、软件系统的整体思考[/b][/size] 前一段时间,看了一些系统的...

2017-07-08 18:27:51 906

原创 maven初探

以前和一个做互联网的朋友聊天,问我有没有用maven,我说没有,他们却是离不开maven。后来我想了一下,为什么我们这边不用呢?他们一大批人就在维护一个系统,面对性能要求,不断优化优化再优化是唯一目标。 我这边一个人要管理多个项目,和多个用户交流,还要带一些技术人员的工作,所以用熟悉的、稳定的、简单的技术框架(而且是蛮老的技术),很多时候从基础项目复制就可以立即开始新项目了,这样...

2017-05-18 10:46:16 118

原创 从0开始直接开始andriod商用级项目的学习(配成果图)

最近终于实战了...后面有记录经历[align=center][color=blue][size=xx-large][b]android项目的初接触[/b][/size][/color][/align] 做java的web项目很久了,虽然看了几篇入门的文章,却从没有真正研究过安卓的开发。可能以后会有手机端开发,毕竟手机应用火。碰巧有机会找来一个应用宝中的一个项目的源码...

2017-04-20 20:51:11 343

原创 一次处理web页面缓慢的思考

上周五,在现场处理一个web页面缓慢的问题,主要功能是显示非常多的统计数据,画出很多图表。听说是新加了一个功能块后,页面变的很慢,于是我先建议关闭新加的功能,后来还是很慢;于是建议分块关闭页面上的功能。策略是先按大块找问题出现的地方,再进入块找细节问题,类似2分法,当然也可以先关闭一半页面功能。慢慢变的快了一点,最后全关了,才秒出。 看来不仅是局部问题了,我开始仔细分析代码,...

2017-04-09 22:36:02 585

原创 log4j使用、源码简析与怎么出炉呢

本文根据log4j-1.2.17,先介绍开发J2EE中使用,后面是深入源码分析,主要是如何Head first来弄这个log。 Apache的log4j是最常用的java日志处理工具,通常用起来非常容易,看到不少人还喜欢用System.out.println(),强烈建议不要用了。有人说jsp里怎么办?下面介绍。一、简单使用 [size=large][b]通...

2017-04-08 19:34:59 124

统计类考核类业务系统的设计要点

最近一直在修改一个统计报送系统,同时思考一个将要开发的绩效考核系统的设计。一方面发现之前开发的统计系统问题很大,而新设计的绩效考核系统与之也几分相似的地方,所以合在一起总结一下我的经验。 [size=large][b][color=red]最近补充了【后记】,仔细说明为什么改,如何思考的,略有缀述。见下面华丽的分割线后的部分。[/color][/b][/size] ...

2017-03-12 22:32:33 366

代码快看哭了-吐槽与感悟汇总

[color=red][size=x-large][b]技术感悟汇总:[/b][/size][/color]1.一直做项目,重点关注在用户需求变化上,而技术要求是稳定可靠,不在技术上花时间,所以导致技术进步比较慢,当然考虑需求上更全面,更高效。2.想起分析过的源码,使用其它人的产品时,目前发现三种典型方式。一种是简单包装,比如我看到的一些log4j的包装。另外是深入到每个引用层...

2017-03-03 00:18:38 344

原创 java并发知识汇总

项目中用到并发的地方不多,一次是多个规则线程并发校验文档,一个是多个并发监控应用,比较简单,但查找并发资料后,发现有更好的方式。于是抽空想全面了解并发,可查到网上相关并发的技术文章很多,但是对我来说有这些问题:[list][*]有的只讲一个技术点[*]有的代码多缺少理解[*]有的层次不够深[/list] 所以自己总结一下了,不是百科全书也不是字典,只是一定知识...

2017-02-23 16:57:33 164

原创 处理web文件上传的FileUpload包的代码设计分析与上传监控

FileUpload 是 Apache commons下面的一个子项目,用来实现Java环境下面的文件上传功能,与常见的SmartUpload齐名。 上传我们一般就直接使用现成的工具来实现就好了,很多工具非常好用,如果理解了它的原理,不仅有助于选择不同的工具,还有助于处理遇到的问题,或者改进工具,或者使用工具中不知道的其它功能。 [b]本文章分三部分:首先介绍基...

2017-02-16 15:52:35 366

空空如也

空空如也

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

TA关注的人

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