Java代理系列-静态代理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

代理模式可以做很多事,像hibernate,spring都使用了代理模式。

spring的aop就是用代理做的。

本系列分为4章,静态代理,动态代理热身,动态代理,cglib代理

今天先写一写静态代理

本例目的是在要调用的方法前后输出start和end,会使用四个类

接口HelloInterface

接口实现类HelloInterfaceImpl

静态代理类HelloStaticProxy

测试类HelloTest

首先写一个接口HelloInterface,定义一个say方法

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public interface HelloInterface {public void say();
}

实现接口HelloInterfaceImpl,打印Hello

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloInterfaceImpl implements HelloInterface {@Overridepublic void say() {System.out.println("Hello");}
}

代理类HelloStaticProxy实现,在代理的方法内加前后环绕,是不是很像AOP

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloStaticProxy{//spring 依赖注入?类似吧private HelloInterface helloInterface;public HelloStaticProxy(HelloInterface helloInterface){this.helloInterface = helloInterface;}public void say_proxy(){System.out.println("start");helloInterface.say();System.out.println("end");}
}


编写测试类HelloTest

package net.hldh.river.staticproxy;/*** Created by liuhj on 2015/12/1.*/
public class HelloTest {public static void main(String args[]){HelloStaticProxy proxy = new HelloStaticProxy(new HelloInterfaceImpl());proxy.say_proxy();}
}

输出结果

start
Hello
end

静态代理呢,使用的不是太多,主要是当你要修改接口或者其他方法时要修改代理类实现类等好多方法,好麻烦

下一章主要写写动态代理前需要知道的知识

才疏学浅,如有错误敬请指出,谢谢。

转载于:https://my.oschina.net/u/2519530/blog/538081

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是证书颁发机构?

CA:证书颁发机构 (CA: Certificate Authority) CA is an abbreviation of the "Certificate Authority". CA是“证书颁发机构”的缩写 。 It is also known as a "certification authority", is a trusted corporation or organization that i…

SQL----函数

在看script的时候,经常会发现一些看不懂的地方。搜索了一下,发现sql还有很多的函数,这是以前不了解的。在这里做一个练习跟总结--------|length()返回字符串的长度select length(alliance_id) from application;--------|substr(string,st…

ajax的模式_AJAX的完整形式是什么?

ajax的模式AJAX:异步JavaScript和XML (AJAX: Asynchronous JavaScript and XML) AJAX is an abbreviation of Asynchronous JavaScript and XML. It is an organized collection of technologies and not of a single technology. Informing a collection of web De…

JAVA Opencv在图片上添加中文

问题描述: 将图片进行均值、中值、高斯滤波,高斯边缘检测,并在图片上添加中文文字。 一、算法思想 首先经过opencv的一系列操作,例如高斯模糊、均值模糊等操作后、用Imgcodecs.imwrite方法将图片写出到指定的位置。再利用java…

手机站点击商务通无轨迹解决方法

手机站点击商务通咨询按钮是很多时候会出现后台无法统计到访客的浏览轨迹的情况&#xff0c;这种情况是因为部分手机浏览器打开新的页面不传递来路页面地址信息所导致的。下面为大家介绍一种能解决这一情况的方法&#xff1a; 代码如下&#xff1a; <script type"text/…

检查Python中是否存在文件

An ability to check if the file exists or not, is very crucial in any application. Often, the applications perform verifications like, 在任何应用程序中&#xff0c;检查文件是否存在的能力至关重要。 通常&#xff0c;应用程序会执行验证&#xff0c;例如&#xff0…

双向tvs和单向tvs_TVS的完整形式是什么?

双向tvs和单向tvsTVS&#xff1a;Thirukkurungudi Vengaram Sundram (TVS: Thirukkurungudi Vengaram Sundram) TVS is an abbreviation of Thirukkurungudi Vengaram Sundram. It is a multinational motorcycle business corporation, which is one of the largest manufactu…

使用系统的CoreLocation定位

//// ViewController.m// LBS//// Created by tonnyhuang on 15/8/28.// Copyright (c) 2015年 tonnyhuang. All rights reserved.//#import "ViewController.h"#import <CoreLocation/CoreLocation.h>//首先&#xff0c;我们需要在工程中导入CoreLocation…

cisc 和 risc_RISC和CISC | 电脑组织

cisc 和 risc1)复杂指令集架构(CISC) (1) Complex Instruction Set Architecture (CISC)) The basic idea behind is to make hardware complex as a single instruction will do all the operation such as loading, evaluating and storing operations just like a division …

黑五已火 电商跨境成燎原之势

我国有着众多的电商&#xff0c;这些电商为了促进消费总是想出千奇百怪的营销节日&#xff0c;比如年中大促、双十一、双十二、年终大促&#xff0c;在今年更是多出了6.18促销、双十萌节&#xff0c;还有一个慢慢火起来的“黑五”。“黑五”与之前提到的众多营销节日有所不同&a…

dir函数_PHP dir()函数与示例

dir函数PHP dir()函数 (PHP dir() function) dir() function is an instance of the directory class, it is used to read the directory, it includes handle and path properties – which can be used to get the resource id and path to the directory. Both handle and …

引用头文件报错 .pch引用不了其他的.h文件

2019独角兽企业重金招聘Python工程师标准>>> 一、编绎显示Unknown type name “CGFloat” 错误解决方法 将Compile Sources As 改为 Objective-C 二、如果是extern const引起的。直接加头文件 #import <UIKit/UIKit.h> 最后在 .h文件 #import <UIKit/UIK…

ibm mq的交互命令模式_IBM的完整形式是什么?

ibm mq的交互命令模式IBM&#xff1a;国际商业机器 (IBM: International Business Machines) IBM is an abbreviation of International Business Machines. It is an I.T based multinational and consulting corporation which is also an American trusted brand in the IT …

iptables 状态策略 允许内网连接外网 拒绝外网主动连入内网 _ 笔记

4种状态newestablishedrelatedinvalidNEW ( a连接b 在b没有回复前 都被称为NEW包)ESTABLISHED ( a和b 连接成功 只有一个连接时 称为ESTABLISHED状态 )a和b一旦连接看到两个方向上都有通信流&#xff0c;与此附加相关的其它包都被看作处于 ESTABLISHED 状态RELATED ( a和b 连接…

r软件说明lib文件未指明_软件说明文件

r软件说明lib文件未指明The software primarily consists of Computer Programs and the associated documentation. We all know that the computer program is the baseline of the entire software, but the documentation part is also as important as the programming pa…

NSTimer详解

1、初始化 (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector us…

linux cnc_CNC的完整形式是什么?

linux cncCNC&#xff1a;计算机数控 (CNC: Computerized Numerical Control) CNC is an abbreviation of Computerized Numerical Control. It is an automated controlling system with which digital electronic computers are used to control, automate, and monitor the …

dfa与ndfa_DFA和NDFA之间的区别| 目录

dfa与ndfaDFA stands for Deterministic Finite Automata and NDFA stands for Non-Deterministic Finite Automata. DFA代表确定性有限自动机&#xff0c;而NDFA代表非确定性有限自动机。 Read more: Deterministic Finite Automata (DFA) 阅读更多&#xff1a; 确定性有限自…

css圆角三角形3个圆角_CSS中的圆角

css圆角三角形3个圆角CSS | 圆角 (CSS | Rounded Corners) border-radius property is commonly used to convert box elements into circles. We can convert box elements into the circle element by setting the border-radius to half of the length of a square element.…

数据库范式5nf_第四范式(4NF)| 数据库管理系统

数据库范式5nfFourth normal form (4NF) is a normal form used in database normalization, in which there are no non-trivial multivalued dependencies except a candidate key. After Boyce–Codd normal form (BCNF), 4NF is the next level of normalization. Although…