代理模式

浅谈代理模式

℡╲_俬逩灬. 提交于 2020-02-26 14:46:35
介绍 代理模式是一种非常好理解的设计面试:当前对象不愿意干的,没法干的东西委托给别的对象来做 用代码描述代理模式 一个程序员接口,他每天写代码 ndb也是一个程序员 静态代理 ndb想请一个程序员大V给自己点赞,已得到人气和money 透明代理(普通代理) ndb想让程序员大v只做ndb的生意 代理类自定义方法 大v看到ndb赚大钱,决定加钱 动态代理 ndb 决定不请大v,而请水军(水军便宜,只要点赞就行) public class Java3y implements Programmer { @Override public void coding() { System.out.println("Java3y最新文章:......给女朋友讲解什么是代理模式......."); } } 动态代理 Java提供一个Proxy类,调用它的newinstance方法可以生成某个对象的地理对象,需要三个参数: 参数一:生成代理对象使用哪个类装载器【一般我们使用的是被代理类的装载器】 参数二:生成哪个对象,通过接口指定【指定要被代理类的接口】 参数三:生成的代理对象的方法里干什么事【实现handler接口,我们想怎么实现就怎么实现】 在编写动态代理之前,要明确几个概念 代理对象拥有目标对象相同的方法【参数二指定了对象的接口,代理对象会实现接口的所有方法】 用户调用代理对象的什么方法

动态AOP-Spring AOP 基于@AspectJ

狂风中的少年 提交于 2020-02-26 14:22:26
XML配置 aspectj-autoproxy 注册自定义命名空间Bean定义解析器 AopNamespaceHandler public class AopNamespaceHandler extends NamespaceHandlerSupport { public void init() { // In 2.0 XSD as well as in 2.1 XSD. registerBeanDefinitionParser("config", new ConfigBeanDefinitionParser()); registerBeanDefinitionParser("aspectj-autoproxy", new AspectJAutoProxyBeanDefinitionParser()); registerBeanDefinitionDecorator("scoped-proxy", new ScopedProxyBeanDefinitionDecorator()); // Only in 2.0 XSD: moved to context namespace as of 2.1 registerBeanDefinitionParser("spring-configured", new SpringConfiguredBeanDefinitionParser());

网易云代理音乐搭建

一曲冷凌霜 提交于 2020-02-26 09:06:38
网易云代理 网易云的歌曲越来越少,各种歌都要vip,想我这种听得少的。 就搭建一个网易云代理,通过代理的方式来获取这些歌曲 网上已经有人写过了 开源地址 解锁代理 可以本地代理,也可以云服务器代理,云服务器代理优点就是方便 我是使用的云服务器代理 官网的部署也有两种方式,一种npx 一种 docker docker简单 1. docker部署 拉取镜像 docker pull nondanee/unblockneteasemusic 运行容器 docker run --restart=always --name 163 -d -p 8999:8080 nondanee/unblockneteasemusic 解释一下参数 重启动打开 --restart=always 容器名字是 --name 163 后台运行 -d 映射端口 本地的8999是容器的8080 最后是镜像名 成功图 2. 注意事项 这样的设置我们相当与就是一个代理 服务器 ,所有的流量通过这个端口都要转发给服务器 所以 可能有人滥用毕竟没有密码 github上强调 ==若将服务部署到公网,强烈建议使用严格模式 (此模式下仅放行网易云音乐所属域名的请求) -s 限制代理范围 (需使用 PAC 或 hosts),或启用 Proxy Authentication -t : 设置代理用户名密码 (目前密码认证在 Windows

静态代理、动态代理,以及动态代理的调用说明

自作多情 提交于 2020-02-26 05:34:41
原文作者:弥诺R 原文地址: http://www.minuor.com/1524750034/article 转载声明:转载请注明原文地址,注意版权维护,谢谢! 提前说说 项目中涉及到的代码我都会上传到码云(gitee)或者github上,提供给大家下载参考,文中就以最简单的方式说明执行过程。源码的地址在文末哦! 代理模式 代理模式分为静态代理和动态代理两种方式,静态代理是在开发的时候就写好代理的过程,并且代理类要和目标类实现同一个接口。而动态代理是代理类通过实现InvocationHandler接口完成,在运行期间动态的构建代理对象,在动态代理的实现过程中还有另一个更为重要的类Proxy,准确的来说,Proxy负责生成代理对象,而InvocationHandler是根据生成的代理对象执行增强内容和目标方法或类。 静态代理 ####要点: 1、代理类需要和目标类需要实现同一个接口 2、在代理类中会内置目标类对象 ####代码分析 创建一个接口Transformers(变形金刚) public interface Transformers { void trans2man();//变形->人 void trans2car();//变形->车 } Transformers的实现类TransformersImpl,可以理解为擎天柱 擎天柱实现了变形金刚接口,拥有两个功能分别是变形成人

理解RabbitMQ中的AMQP-0-9-1模型

时光怂恿深爱的人放手 提交于 2020-02-26 01:55:23
前提 之前有个打算在学习RabbitMQ之前,把AMQP详细阅读一次,挑出里面的重点内容。后来找了下RabbitMQ的官方文档,发现了有一篇文档专门介绍了RabbitMQ中实现的AMQP模型部分,于是直接基于此文档和个人理解写下这篇文章。 AMQP协议 AMQP 全称是Advanced Message Queuing Protocol,它是一个(分布式)消息传递协议,使用和符合此协议的客户端能够基于使用和符合此协议的消息传递中间件代理(Broker,也就是经纪人,个人感觉叫代理合口一些)进行通信。AMQP目前已经推出协议1.0,实现此协议的比较知名的产品有StormMQ、RabbitMQ、Apache Qpid等。RabbitMQ实现的AMQP版本是0.9.1,官方文档中也提供了该协议pdf文本下载,有兴趣可以翻阅一下。 消息中间件代理的职责 Messaging Broker,这里称为消息中间件代理。它的职责是从发布者(Publisher,或者有些时候称为Producer,生产者)接收消息,然后把消息路由到消费者(Consumer,或者有些时候称为Listener,监听者)。 因为消息中间件代理、发布者客户端和消费者客户端都是基于AMQP这一网络消息协议,所以消息中间件代理、发布者客户端和消费者客户端可以在不同的机器上,从而实现分布式通讯和服务解耦。

nginx---基础介绍

懵懂的女人 提交于 2020-02-25 23:58:52
转自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx的产生 没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。 Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多有点:稳定、开源、跨平台等等。但是由于它出现的时间太长了。它兴起的年代,互联网产业远比不上现在。所以它被设计为一个重量级的。不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。 这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。 俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间

浅谈C#中常见的委托

♀尐吖头ヾ 提交于 2020-02-24 16:30:17
一提到委托,浮现在我们脑海中的大概是听的最多的就是类似C++的函数指针吧,呵呵,至少我的第一个反应是这样的。 关于委托的定义和使用,已经有诸多的人讲解过,并且讲解细致入微,尤其是张子阳的那一篇。我就不用多废话了。 今天我要说的是C#中的三种委托方式:Func委托,Action委托,Predicate委托以及这三种委托的常见使用场景。 Func,Action,Predicate全面解析 首先来说明Func委托,通过MSDN我们可以了解到,Func委托有如下的5种类型: (1) *delegate TResult Func<TResult>(); (2)*delegate TResult Func<T1,TResult>(T1 arg1); (3) *delegate TResult Func<T1,T2,TResult>(T1 arg1, T2 arg2); (4)*delegate TResult Func<T1,T2,T3,TResult>(T1 arg1, T2 arg2, T3 arg3); (5)*delegate TResult Func<T1,T2,T3,T4,TResult>T1 arg1, T2 arg2, T3 arg3, T4 arg4); 其中(1)只能委托无参但是有返回值的函数,TResult就是其返回类型。 而(2)只能委托具有一个传入参数,有返回值的函数

RPC框架之Dubbo

烂漫一生 提交于 2020-02-24 02:51:38
问题1:为什么要把系统拆分成分布式的?为啥要用dubbo? 1.为什么要将系统进行拆分? 要是不拆分系统,一个大系统几十万行代码,很多人共同维护一份代码,简直是悲剧; 拆分了以后,一个大系统拆分成很多小服务,平均每个系统也就几万行代码,每个服务部署到单独的机器 2.如何进行服务拆分? ​ 大部分系统,是要进行多轮拆分的,第一次拆分就可能将原来的多个模块拆分开来。 ​ 但是后来可能每个系统都变得很复杂了,每个模块拆分出来的服务又要继续拆分。 3.拆分后可以不用dubbo吗? ​ 当然可以,大不了各个系统之间,直接基于springmvc,就通过纯httpj接口互相通信。但是这里肯定是由问题的,因为HTTP接口通信维护起来成本很高,要考虑超时重试,负载均衡等各种问题。 所以dubbo说白了,就是一个rpc框架,就是本地就是进行接口调用,但是dubbo会代理这个调用请求,跟远程机器网络通信,处理负载均衡,服务上下线自动感知,超时重试等问题,就不用我们自己做,交给dubbo。 ​ 问题2:说一下dubbo的工作原理,注册中心挂了可以继续通信吗?说一下一次rpc请求的流程? 1.dubbo工作原理 2.dubbo分层 第一层:service层,需要服务提供方和消费方来实现 第二层:config层,配置层,主要是对dubbo的各种配置 第三层:proxy层,服务代理层

nginx简介和配置gd

旧时模样 提交于 2020-02-23 22:30:20
转自:https://www.cnblogs.com/zhouxinfei/p/7862285.html nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍nginx 反向代理 负载均衡 nginx特点 1. 反向代理 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道; 此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户 正向代理 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理 在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器

Nginx安装及配置详解

大兔子大兔子 提交于 2020-02-23 22:25:54
枫飞飞 Nginx安装及配置详解 转自:https://www.cnblogs.com/zhouxinfei/p/7862285.html nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍nginx 反向代理 负载均衡 nginx特点 1. 反向代理 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道; 此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户 正向代理 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理 在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问