- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 Spring 事务为啥只对public方法有效
本质跟AOP调用有关:在事务代理对象中有判断代理的方法必须是public修饰,否则返回null
2021-04-16 09:30:11
1701
1
原创 领域驱动设计(DDD)之Repository模式的个人理解
贫血领域模型的带来的问题1.代码的健壮性差2.强依赖底层代码3.代码逻辑大量重复贫血领域模型的带来的问题的原因归纳1.数据库思维2.脚本思维3.贫血模式的简单数据模型(Data Model)与领域模型(Domain model)的区别数据模型:强调的是业务数据如何持久化、数据之间的关系领域模型:强调的是业务逻辑中。数据如何联动组件、固件、硬件的简单理解硬件:底层固话的东西,比如数据库相关软件:业务代码固件:将硬件与软件建立联系entity、DO、DTO的区别entity:业务
2021-03-09 17:49:15
1151
2
原创 领域驱动设计(DDD)基本概念的自我理解
DDD个人主要理解它微服务的设计思想主要由子域与边界上下文组成子域:领域驱动为每一个子域设计独立的领域模型,每一个子对应着一个业务边界上下文:子域的边界它是对面向对象设计的增强与数据驱动的区别数据驱动:我们传统的代码架构是dao、service、controller三层组成,大多数的业务本质是对数据库表的增删改查(比如开发一个简单用户注册系统)数据驱动的痛点:(1) 存在接口定义不狗清晰(参数定义不够清晰,比如都用string类型去接收)(2) 存在业务代码不够清晰(比如核心业务代码中
2021-03-03 17:05:09
466
2
原创 静态代码块、静态成员变量、普通代码块、普通成员变量、构造方法加载次序
一.结论:父类静态代码块,父类静态成员变量》》子类的静态代码块、子类的静态变量》》父类的普通代码块,父类普通成员变量,父类构造方法》》子类的普通代码块、子类普通成员变量、子类的构造方法二、触发时间1、静态代码块,静态成员变量:在类加载的时候被加载,比如在new时候会触发,通过类调用静态方法 或者静态变量,Class.forName2、普通代码块、普通成员变量、构造方法:在每次实例化的时候被加载 比如new,invoke三、代码1.构建一个Father类public cl
2021-01-05 15:59:03
362
1
转载 深入理解java异常处理机制
原文转载:https://blog.youkuaiyun.com/hguisu/article/details/6155636二.前言:引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。package Test;pub
2021-01-04 19:59:34
150
原创 手写简单版本的RPC
一、实现思路基于socket与serverSocket网络编程二、实现方案1、rpc-server:(1)、rpc-server-apia.创建 ISayHellowpublic interface ISayHellow { void sayHellow();}b.创建 IStudyHardpublic interface IStudyHard { void studyHard();}c.创建 RpcRequestpublic class RpcRequest i
2020-11-03 20:12:11
127
原创 手写迷你简单Tomcat
一、实现原理1.基于ServerSocket网络编程,对外暴露服务。2.用户在前端请求访问,ServerSocket监听建立的TCP请求后,通过其请求IO,反序列化获取访问url3.根据拿到的URL,匹配对应的Handler处理类,将处理结果写入Socket 输出流中,最终返回给用户页面。二、实现方案1.创建MyHttpRequest类public class MyHttpRequest implements Serializable { //请求路径 private Strin
2020-11-03 19:26:32
267
原创 分布式服务协调员zookeeper - 应用场景和监控
zookeeper在分布式系统中作为协调员的角色,可应用于Leader选举、分布式锁、配置管理等服务的实现。以下我们从zookeeper提供的API、应用场景和监控三方面学习和了解zookeeper(以下简称ZK)。ZK APIZK以Unix文件系统树结构的形式管理存储的数据,图示如下:其中每个树节点被称为znode,每个znode类似一个文件,包含文件元信息(meta data)和数据。以下我们用server表示ZK服务的提供方,client表示ZK服务的使用方,当client连接ZK时,相应创
2020-06-11 15:12:40
215
转载 ThreadLocal必知必会
什么是ThreadLocal变量ThreadLoal 变量,线程局部变量,同一个 ThreadLocal 所包含的对象,在不同的 Thread 中有不同的副本。这里有几点需要注意:因为每个 Thread 内有自己的实例副本,且该副本只能由当前 Thread 使用。这是也是 ThreadLocal 命名的由来。 既然每个 Thread 有自己的实例副本,且其它 Thread 不可访问,那就...
2020-05-05 12:37:02
137
原创 Java线程池那么点事
1、线程池的优势(1)、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗;(2)、提高系统响应速度,当有任务到达时,通过复用已存在的线程,无需等待新线程的创建便能立即执行;(3)方便线程并发数的管控。因为线程若是无限制的创建,可能会导致内存占用过多而产生OOM,并且会造成cpu过度切换(cpu切换线程是有时间成本的(需要保持当前执行线程的现场,并恢复要执行线程的现场))...
2020-05-05 12:34:12
112
原创 开源博客项目OneBlog解读
前言本篇文章主要通过解读开源项目OneBlog的如何搭建、技术栈的介绍及优点与不足,来加深对技术理解,后期为自己搭建个人博客项目积累经验。简介OneBlog 一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发,前端使用Bootstrap。支持移动端自适应,配有完备的前台和后台管理功能。git地址:https://gitee.com/yadong.zhang/DB...
2019-12-15 23:04:33
1151
1
原创 jackson反序列化泛型类的使用方法与注意事项
原文来自 https://www.imooc.com/article/20950对此原文看完的注意点:1.用于封装的Response 对象的属性可以大于或者等于反序列化的属性,但是绝对不能少于。...
2019-09-18 18:59:23
813
转载 Spring 事务详解(原理+实战)
注明原文链接:https://blog.youkuaiyun.com/trigl/article/details/50968079写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解https://www.open-open.com/lib/vie...
2019-05-24 17:00:06
1678
原创 高并发环境的下幂等操作
一.什么是幂等幂等就是多次重复提交执行与一次提交执行的结果影响一样二.为什么要幂等在高并发的环境下,很频繁就触发多次请求:1.前端页面多次提交 2.网络重发、系统bug重试、nginx重发3.一个业务请求只对应一个订单号三.如何幂等1.select+update:在update操作之前先执行select查询操作,适用并发不多的场景2.悲观锁:通常与事务放在一起 selec...
2019-05-16 22:01:07
234
转载 Java常用锁
前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类...
2019-02-21 15:28:35
233
soapUI pro5.1.2软件包下载及破解文件
2017-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人