代理模式源码分析
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -105,6 +105,12 @@
|
|||||||
<version>${org.springframework.version}</version>
|
<version>${org.springframework.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-aop</artifactId>
|
||||||
|
<version>${org.springframework.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-tx</artifactId>
|
<artifactId>spring-tx</artifactId>
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package top.fjy8018.designpattern.pattern.structural.proxy.dynamic;
|
package top.fjy8018.designpattern.pattern.structural.proxy.dynamic;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.ibatis.binding.MapperProxy;
|
||||||
|
import org.springframework.aop.framework.ProxyFactoryBean;
|
||||||
import top.fjy8018.designpattern.pattern.structural.proxy.Order;
|
import top.fjy8018.designpattern.pattern.structural.proxy.Order;
|
||||||
import top.fjy8018.designpattern.pattern.structural.proxy.db.DataSourceContextHolder;
|
import top.fjy8018.designpattern.pattern.structural.proxy.db.DataSourceContextHolder;
|
||||||
|
|
||||||
@@ -11,6 +13,13 @@ import java.lang.reflect.Proxy;
|
|||||||
/**
|
/**
|
||||||
* 动态代理实现分库
|
* 动态代理实现分库
|
||||||
* 动态代理适用场景更加广泛,可以实现通用分库逻辑
|
* 动态代理适用场景更加广泛,可以实现通用分库逻辑
|
||||||
|
* <p>
|
||||||
|
* {@link ProxyFactoryBean#getObject()} 代理工厂类
|
||||||
|
* {@link org.springframework.aop.framework.JdkDynamicAopProxy} spring AOP实现,对动态代理封装
|
||||||
|
* {@link org.springframework.aop.framework.CglibAopProxy} Cglib 对类进行代理增强
|
||||||
|
* {@link org.apache.ibatis.binding.MapperProxyFactory#newInstance(MapperProxy)} 实现mapper代理
|
||||||
|
* 实际封装在 {@link MapperProxy#invoke(Object, Method, Object[])}
|
||||||
|
* 其获取的方法利用了享元模式 {@link MapperProxy#cachedMapperMethod(Method)}
|
||||||
*
|
*
|
||||||
* @author F嘉阳
|
* @author F嘉阳
|
||||||
* @date 2020/3/3 11:00
|
* @date 2020/3/3 11:00
|
||||||
|
|||||||
Reference in New Issue
Block a user