JDK静态代理示例代码

  1. 业务接口
  2. 接口的实现类
  3. 代理类,实现接口,并扩展实现类的功能

1、业务接口

/**
* 业务接口
* @author pc
*
*/
public interface UserService {
// 增加一个用户
public void addUser();
// 编辑账户
public void editUser();
}

2、业务实现类

 /**
* 业务实现类
* @author pc
*
*/
public class UserServiceImpl implements UserService { public void addUser() {
System.out.println("增加一个用户。。。");
} public void editUser() {
System.out.println("编辑一个用户。。。");
} }

3、代理类(实现业务接口,并实例化业务实现类)

 /**
* 代理类
*
* @author pc
*
*/
public class UserServiceProxy implements UserService { private UserServiceImpl userImpl; public UserServiceProxy(UserServiceImpl countImpl) {
this.userImpl = countImpl;
} public void addUser() {
System.out.println("代理类方法,进行了增强。。。");
System.out.println("事务开始。。。");
// 调用委托类的方法;
userImpl.addUser();
System.out.println("处理结束。。。");
} public void editUser() {
System.out.println("代理类方法,进行了增强。。。");
System.out.println("事务开始。。。");
// 调用委托类的方法;
userImpl.editUser();
System.out.println("事务结束。。。");
} }

4、测试类

 public static void main(String[] args) {
UserServiceImpl userImpl = new UserServiceImpl();
UserServiceProxy proxy = new UserServiceProxy(userImpl);
proxy.addUser();
System.out.println("----------分割线----------");
proxy.editUser();
}

5、结果

 代理类方法,进行了增强。。。
事务开始。。。
增加一个用户。。。
处理结束。。。
----------分割线----------
代理类方法,进行了增强。。。
事务开始。。。
编辑一个用户。。。
事务结束。。。

JDK静态代理示例代码的更多相关文章

  1. Java代理(jdk静态代理、动态代理和cglib动态代理)

    一.代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,并对相关方法进行增强.加入一些非业务性代码,比如事务.日志.报警发邮件等操作. 二.jdk静态代理 1.业务接口 /** * 业务接 ...

  2. [z]Java代理(jdk静态代理、动态代理和cglib动态代理)

    一.代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,并对相关方法进行增强.加入一些非业务性代码,比如事务.日志.报警发邮件等操作. 二.jdk静态代理 1.业务接口 1 2 3 4 5 ...

  3. Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)

    一.概念 代理是什么呢?举个例子,一个公司是卖摄像头的,但公司不直接跟用户打交道,而是通过代理商跟用户打交道.如果:公司接口中有一个卖产品的方法,那么公司需要实现这个方法,而代理商也必须实现这个方法. ...

  4. SSH 前言(JDK静态代理和动态代理)

    代理模式:代理模式是为了增强目标对象 代理分静态代理和动态代理 静态代理逻辑是:比如定义一个ISomeService接口,接口里面有一个输出doSecond()的方法,然后目标类SomeService ...

  5. cglib代理与jdk动态代理示例

    先看基于jdk实现的动态代理实现例子 1.先声明一个接口类 public interface UserService{ public String getName(String msg); } 2.实 ...

  6. JDK动态代理Demo代码,进一步学习分析

    import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...

  7. 静态代理和利用反射形成的动态代理(JDK动态代理)

    代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 静态代理 1.新建 ...

  8. java的静态代理和动态代理(jdk、cglib)

    一.代理模式 代理的概念来自于设计模式中的代理模式,先了解一下代理模式 1.结构图 2.参与者 Subject:接口,定义代理类和实际类的共用接口 RealSubject:实际类,实现Subject这 ...

  9. Java代理(静态代理、JDK动态代理、CGLIB动态代理)

    Java中代理有静态代理和动态代理.静态代理的代理关系在编译时就确定了,而动态代理的代理关系是在运行期确定的.静态代理实现简单,适合于代理类较少且确定的情况,而动态代理则给我们提供了更大的灵活性. J ...

随机推荐

  1. [ccf 4] 网络延时

    网络延时 问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机.交换机与电脑之间使用网络连接.交换机按层级设置,编号为1的交换机为根交换机,层级为      1.他的交换机都连 ...

  2. ossim中Spot5模型bug修复

    ossim中Spot5模型在读取像素视线角时存在一个严重的bug,导致某些点的视线角提取错误. 下面是ossim中getPixelLookAngleX 函数的代码: ossimSpotDimapSup ...

  3. Facebook的工程师文化——《打造facebook》读后感

    在今年北京的QCon大会上听了facebook早期中国籍工程师王淮的演讲,受益匪浅,主题是如何打造高效能团队,主要介绍他在facebook的一些经历和管理上的经验分享.现在的他是一名天使投资人,投资的 ...

  4. Android Studio 编译报错:Process 'command 'D:\SDK\AS\sdk\build-tools\23.0.0\aapt.exe'' finished with non-zero exit value 1

    AGPBI: {"kind":"error","text":"No resource identifier found for a ...

  5. Scrum立会报告+燃尽图 07

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2289] 版本控制:https://git.coding.net/liuyy08 ...

  6. 2018.12.25 SOW

    1. Understanding Customer Requirements 11.1. Project Overview 21.2. System Requirements 21.3. Indust ...

  7. 使用c++实现一个FTP客户端(二)

    接上篇http://www.cnblogs.com/jzincnblogs/p/5213978.html,这篇主要记录编程方面的重点. 客户端使用了Windows Socket提供的API,支持上传. ...

  8. 20145237 Exp2 后门原理与实践

    20145237<网络对抗>Exp2 后门原理与实践 Windows获得Linux Shell 在Windows下,先使用ipconfig指令查看本机IP: 输入ncat.exe -l - ...

  9. python3 爬虫相关-requests和BeautifulSoup

    前言 时间的关系,这篇文章只记录了相关库的使用,没有进行深入分析,各位看官请见谅(还是因为懒.....) requests使用 发送无参数的get请求 r = requests.get('http:/ ...

  10. [BZOJ2727][HNOI2012]双十字

    bzoj luogu sol 先预处理从每个点出发向上/下/左/右能延伸多长. 考虑怎么计算答案.我们只要枚举中轴线,再枚举上方的十字交点,枚举下方的十字交点,然后算答案即可. 考虑一个左右宽的最小值 ...