代理模式

hibernate 延迟加载

心不动则不痛 提交于 2019-11-28 18:25:41
延迟加载 延迟加载: 当hibernate从数据库中加载某个对象时,不加载关联的对象,而只是生成了代理对象。使用session中的load的方法(在没有改变lazy属性,属性值为true的情况下)获取到的也是代理对象。 立即加载: 当Hibernate从数据库中加载某个对象时,加载关联的对象,生成实际的对象。使用session中的get的方法获取到的也是实际对象。 延迟加载的好处: 延迟加载策略能避免加载应用程序不需要访问的关联对象,以提高应用程序的性能。 立即加载的缺点: Hibernate在查询某个对象时,立即查询与之关联的对象: 1、当select的语句数目太多,需要频繁的访问数据库,会影响查询的性能。 2、在应用程序只需要访问要的对象,而不需要访问与他关联的对象的场景下,加载与之关联的对象完全是多余的操作,这些多余的操作是会占内存,这就造成了内存空间的浪费。 延迟加载的原理图: Hibernate的lazy生效期: 生效期和session一样的,session关闭,lazy失效。hibernate支持lazy策略只在session打开状态下有效。如果session已经关闭了,则会抛出LazyInitalizationException异常 Hibernate lazy属性,在3.x后是默认打开的,在以前版本中默认是关闭的

花了近十年的时间,整理出史上最全面Java面试题

痞子三分冷 提交于 2019-11-28 18:09:38
1、什么是Spring? Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。 2、Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。 面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。 容器:Spring包含并管理应用程序对象的配置及生命周期。 MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。 事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。 异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。 3、Spring 事务实现方式 编程式事务管理:这意味着你可以通过编程的方式管理事务,这种方式带来了很大的灵活性,但很难维护。 声明式事务管理

深入理解Nginx

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

Java 中几种常用设计模式

醉酒当歌 提交于 2019-11-28 16:30:43
Java 中一般认为有23种设计模式,当然暂时不需要所有的都会,但是其中常见的几种设计模式应该去掌握。 总体来说设计模式分为三大类: 创建型模式 ,共五种: 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式 ,共七种: 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式 ,共十一种: 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 1. 单例模式 所谓的单例设计指的是 一个类只允许产生一个实例化对象 。 最好理解的一种设计模式,分为 懒汉式 和 饿汉式 。 1.饿汉式   ——构造方法私有化,外部无法产生新的实例化对象,只能通过static方法取得实例化对象 class Singleton { /** * 在类的内部可以访问私有结构,所以可以在类的内部产生实例化对象 */ private static Singleton instance = new Singleton(); /** * private 声明构造 */ private Singleton() { } /** * 返回对象实例 */ public static Singleton getInstance() { return instance; } public void

Kubernetes service 代理模式

拟墨画扇 提交于 2019-11-28 15:48:15
Kubernetes service 代理模式 底层流量转发与负载均衡实现: • Iptables(默认) • IPVS IPVS 了解代理模式之IPVS工作原理 LVS 基于 IPVS内核调度模块实现的负载均衡。 # 查看路由对应关系 , 需要先下载ipvsadm工具 ipvsadm -ln 注:内核态处理。 IPVS: • 工作在内核态,有更好的性能 • 调度算法丰富:rr,wrr,lc,wlc,ip hash.. 安装:yum -y install ipvsadm 开启使用IPVS模式 1、Node:启用IPVS模式,修改配置文件 KUBE_PROXY_OPTS="--logtostderr=true \ --v=4 \ --hostname-override=192.168.1.110 \ --cluster-cidr=10.0.0.0/24 \ --proxy-mode=ipvs \ --masquerade-all=true \ # 指定默认调度算法 --ipvs-scheduler=wrr \ --kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig" vim /opt/kubernetes/cfg/kube-proxy 2、重启kube-proxy systemctl restart kube-proxy

61 (OC)* 代理 block 通知 代理 kvo

别说谁变了你拦得住时间么 提交于 2019-11-28 15:05:55
1.从源头上理解和区别block和delegate delegate运行成本低,block的运行成本高。 block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者block置nil后才消除。delegate只是保存了一个对象指针,直接回调,没有额外消耗。就像C的函数指针,只多做了一个查表动作。 2.从使用场景区别block和delegate 有多个相关方法。假如每个方法都设置一个 block, 这样会更麻烦。而 delegate 让多个方法分成一组,只需要设置一次,就可以多次回调。当多于 3 个方法时就应该优先采用 delegate。当1,2个回调时,则使用block。 delegate更安全些,比如: 避免循环引用。使用 block 时稍微不注意就形成循环引用,导致对象释放不了。这种循环引用,一旦出现就比较难检查出来。而 delegate 的方法是分离开的,并不会引用上下文,因此会更安全些。 delegate回调返回的参数被限制在了 NS 类的范围内,数量也很有限(当然可以用直接调用方法的形式在绕过,并不推荐;也可以用 Array 套着传, 不过这样需要有文档支持,不然不够清晰,回调方法也需要独立的验证,故也不推荐)。 效率 肯定是delegate比NSNotification高。 KVO提供一种机制,当指定的被观察的对像的属性被修改后

js 设计模式——代理模式

大城市里の小女人 提交于 2019-11-28 14:49:22
代理模式 代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。 生活中有很多的代理模式的场景。例如,明星有经纪人作为代理,老板有秘书作为代理等等,当有事情的时候,会找到经纪人或秘书,再由他们转达给明星或者老板。 首先通过一个例子来简单的了解了解,故事是这样的... 以下故事纯属虚构,不要当真 大家都知道三顾茅庐(不知道的百度一下)吧,诸葛亮何许人也,厉害的不要不要的,名声在外啊。好巧不巧刘备知道了,刘备心想:“这么厉害的人跟着我,岂不美哉,统一三国起步指日可待”,于是,刘备带着礼物就去请人家了。正常流程应该这样: // 刘备 let bei = { // 邀请 invite(){ liang.reception('草鞋') } } // 亮 let liang = { // 收到礼物 reception(gift){ console.log('亮收到礼物:' + gift) } } // 调用方法 bei.invite() 但是呢,事实不是这样的,诸葛亮心想:“刘备一卖草鞋的就想见我?”,于是呢,刘备只见到了门童: // 刘备 let bei = { // 邀请 invite(){ mentong.reception('草鞋') } } // 门童 let mentong = { // 接收礼物 reception(gift){ console.log('门童收到礼物:

nginx 反向代理服务

。_饼干妹妹 提交于 2019-11-28 14:44:13
目录 Nginx代理服务基本概述 Nginx代理服务常见模式 Nginx代理服务支持协议 Nginx反向代理配置语法 Nginx反向代理场景实践 配置代理实战 在lb01上安装nginx Nginx代理服务基本概述 代理: 代理一词往往并不陌生, 该服务我们常常用到如(代理理财、代理租房、代理收货等等),如下图所示 没有代理情景 在没有代理模式的情况下,客户端和Nginx服务端,都是客户端直接请求服务端,服务端直接响应客户端。 企业场景 那么在互联网请求里面,客户端往往无法直接向服务端发起请求,那么就需要用到代理服务,来实现客户端和服务通信,如下图所示* Nginx代理服务常见模式 Nginx作为代理服务,按照应用场景模式进行总结,代理分为正向代理、反向代理 正向代理 正向代理,(内部上网)客户端<—>代理->服务端* 反向代理 反向代理,用于公司集群架构中,客户端->代理<—>服务端* 正向代理与反向代理的区别 1.区别在于形式上服务的”对象”不一样* 2.正向代理代理的对象是客户端,为客户端服务 3.反向代理代理的对象是服务端,为服务端服务 Nginx代理服务支持协议 Nginx作为代理服务,可支持的代理协议非常的多,具体如下图 反向代理使用协议 如果将Nginx作为反向代理服务,常常会用到如下几种代理协议,如下图所示*  模块总结

Spring应用学习——AOP

南楼画角 提交于 2019-11-28 14:27:02
1. AOP 1. AOP:即面向切面编程,采用横向抽取机制,取代了传统的继承体系的重复代码问题,如下图所示,性能监控、日志记录等代码围绕业务逻辑代码,而这部分代码是一个高度重复的代码,也就是在每一个业务逻辑的代码中都会有相同的代码围绕业务逻辑代码,而AOP就是将这些重复代码抽取出 2. AOP实现原理:就是代理模式,主要有两种方式,分别是静态代理和动态代理, 静态代理:采用一些工具类对原来的类生成一个代理类,代理类以.class存在 动态代理(重点,spring基于动态代理实现aop):在运行中,通过反射生成类的代理对象,在代理对象中对原来的对象进行增强。 3. spring采用动态代理的技术实现包括: 基于接口生成动态代理对象:使用jdk提供的反射机制实现,参考这篇博客, JDK动态代理实现详解 基于类生成动态代理对象:通过继承实现,根据类生成一个子类(代理对象),在代理对象(子类)中对父类进行增强,参考 这篇博客 。实现 cglib通过继承的形式来实现动态功能的代理 那么就无法避免一些继承的缺点,那就是无法代理final方法和无法代理final类,示例使用代码如下 import java.lang.reflect.Method; import org.springframework.cglib.proxy.MethodInterceptor; import org

设计模式简介及常用应用场景

有些话、适合烂在心里 提交于 2019-11-28 12:48:42
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。 常用应用场景: 工厂模式 :IOC就是典型的工厂模式 代理模式 :AOP就是代理实现的 Facade模式 :shiro框架的核心 单例模式 Spring默认就是单例 不变模式 string 八大基本数据类型都是单例 Future 模式 异步调用。即请求时只拿到一个契约,约定以后可以获取这个东西 来源: https://www.cnblogs.com/duguangming/p/11407721.html