勇往直前的专栏

写给以后的自己

Spring@Cacheable注解在类内部调用失效的问题

如图所示,getRecomendGoogs方法里面调用findImgUrlByName方法,在findImgUrlByName方法上使用@Cacheable注解的时候,并没有走缓存。 要解决这个问题,首先我们需要了解spring缓存的原理。spring cache的实现原理跟spring的事务管...

2019-05-05 08:22:35

阅读数 899

评论数 0

记一次Java动态代理实践

导语:在Java生态中,我们经常直接或者间接的用到动态代理,比如通过动态代理调用远程服务,再比如通过动态代理实现解耦。本文结合京东服务框架JSF,讲述京东使用动态代理进行抽象的一次实践,以达到升级数据库访问层的目的。 刘世杰,京东商城Java高级开发工程师,一直从服务端研发工作,目前主要负...

2018-12-01 21:11:00

阅读数 79

评论数 0

【手写系列】纯手写实现一个高可用的RPC

前言 在实际后台服务开发中,比如订单服务(开发者A负责)需要调用商品服务(开发者B负责),那么开发者B会和A约定调用API,以接口的形式提供给A。通常都是B把API上传到Maven私服,然后B开始写API的实现,A只需要引入API依赖进行开发即可。 订单服务调用商品服务 上图简单的描述了R...

2018-11-23 09:43:10

阅读数 810

评论数 1

分析动态代理给Spring事务埋下的坑

前言 Spring的声明式事务让我们不再编写获得连接、关闭连接、开启事务、提交事务、回滚事务等代码,通过一个简单的@Transactional注解,就让我们轻松进行事务处理。我们知道Spring事务基于AOP,采用动态代理实现,虽然使用简单,但是在实际场景中,我们也会遇到一些坑。而往往遇到坑之后...

2018-11-23 09:00:43

阅读数 70

评论数 0

【手写系列】透彻理解MyBatis设计思想之手写实现

前言 MyBatis,曾经给我的感觉是一个很神奇的东西,我们只需要按照规范写好XXXMapper.xml以及XXXMapper.java接口。要知道我们并没有提供XXXMapper.java的实现类,MyBatis到底是怎么做到这一点的呢?有人会说是动态代理,现在我就来通过手写一个迷你版的MyB...

2018-11-21 08:46:14

阅读数 246

评论数 0

【手写系列】纯手写实现JDK动态代理

前言 在Java领域,动态代理应用非常广泛,特别是流行的Spring/MyBatis等框架。JDK本身是有实现动态代理技术的,不过要求被代理的类必须实现接口,不过cglib对这一不足进行了有效补充。本篇博客将涉及2个话题:第一,JDK动态代理的实现原理,带你探索动态代理的实质面目;第二,自己动手...

2018-11-20 08:36:56

阅读数 158

评论数 0

设计模式之动态代理模式实战

昨天分享了静态代理的概念及存在的缺点,所以今天讲的动态代理模式十分重要。动态代理在我们工作当中应用相当广泛,如Srping AOP就是动态代理的在开源框架的比较出名的应用。 动态代理有两种试,一是通过JDK自带的API实现动态代理,二是通过别的字节码框架实现,如cglib。 需要注意的是J...

2018-11-13 11:18:06

阅读数 87

评论数 1

牛逼哄哄的 RPC 框架,底层到底什么原理?

1. RPC框架的概念 RPC(Remote Procedure Call)–远程过程调用,通过网络通信调用不同的服务,共同支撑一个软件系统,微服务实现的基石技术。 使用RPC可以解耦系统,方便维护,同时增加系统处理请求的能力。 上面是一个简单的软件系统结构,我们拆分出来用户系统和订单系...

2018-11-03 00:09:40

阅读数 449

评论数 0

Spring AOP,AspectJ,CGLIB 有点晕

AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代...

2018-10-21 17:59:16

阅读数 117

评论数 0

JAVA 注解的基本原理

以前,『XML』是各大框架的青睐者,它以松耦合的方式完成了框架中几乎所有的配置,但是随着项目越来越庞大,『XML』的内容也越来越复杂,维护成本变高。 于是就有人提出来一种标记式高耦合的配置方式,『注解』。方法上可以进行注解,类上也可以注解,字段属性上也可以注解,反正几乎需要配置的地方都可以进行注...

2018-10-21 15:17:15

阅读数 36

评论数 0

彻底理解Java动态代理

代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问。 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念。 代理模式示例代码 public interface Subject { public void doSomething(); ...

2017-11-02 14:48:58

阅读数 194

评论数 0

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