究竟什么是“动态代理”呢? 它是“代理模式”的一种更灵活的应用,我通过生活中的例子来说明一下代理和动态代理。
比如我们要买一台电脑,不需要去生产电脑的厂家,而只需要到当地的代售商出购买即可。因为代售商已经预先购进了某品牌的电脑,当消费者来买的时候,可以直接将电脑卖出。这就是“代理模式”的体现,而代理商就是一个“代理角色”。但是这种代理模式存在一个问题:代售商只负责一个品牌的电脑,当消费者需要购买大量不同品牌电脑的时候,就要分别联系不同的代售商,这是一件很麻烦的事情。需要我们对营销机制进行改进,改进后的代售商将不预先购进电脑,等有消费者来购买电脑的时候,代理商再根据消费者需求去不同的生产厂家进货。这样一来,无论消费者需要多少品种的电脑,只需要一个代理商就能满足要求。这种模式便是“动态代理”。
代理模式:类结构的模式,优点就是不需要更改原有类(被代理类)就能增强原有类(被代理类)的功能,缺点就是必须实现原有类(被代理类)的接口
JDK的动态代理:
优点就是不必“复制”原有类(被代理类)接口实现类,缺点就是必须为每个被代理类实现几乎一样的方法 ----这句话我理解还不到位,请各位指点!
Spring默认采取的动态代理机制实现AOP,当动态代理不可用时(代理类无接口)会使用CGlib机制。但Spring的AOP有一定的缺点,第一个只能对方法进行切入,不能对接口,字段,静态代码块进行切入(切入接口的某个方法,则该接口下所有实现类的该方法将被切入)。第二个同类中的互相调用方法将不会使用代理类。因为要使用代理类必须从Spring容器中获取Bean。第三个性能不是最好的,我们使用自定义类加载器,性能要优于动态代理和CGlib。
之后会不断更新文章。
参考文章:http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/
http://newleague.iteye.com/blog/699086
http://www.iteye.com/topic/1116696
分享到:
相关推荐
### 动态代理的前世今生 #### 一、引言 动态代理作为一种广泛应用于软件开发中的设计模式,其重要性不言而喻。本文旨在深入探讨动态代理的概念、原理及其实现方式,并通过实例帮助读者更好地理解动态代理的应用...
如果一个类实现了一个或多个接口,那么Spring就会使用默认的JDK动态代理,如果没有实现任何接口,就会使用cglib来代理。当然我们也可以手动改变这些设置。这也是比较容易掉坑的部分,如果设置错了代理方式,那么在...
其次,代理产品部分详细列出了乙方代理销售的产品种类,以及未来产品种类可能的变化,确保双方对代理商品有清晰的认识。同时,合同强调了禁止乙方经营与甲方产品竞争的同类产品,以维护甲方产品的市场地位。 代理...
- 统一代理商的思想认识,确保所有代理商在市场运作中采取一致的标准和方法。 - 明确代理商的责任、权利与义务,促进嘉莉诗销售通道的建设和零售终端的发展。 - 构建更牢固的战略联盟,在管理、组织、文化等多个...
该资源是一个名为"78黑蓝绿注册代理企业交互动态全套网站源代码.zip"的压缩包,包含一套完整的网站源代码,适用于构建注册代理类的企业互动网站。从标题和描述我们可以推测,这个源代码设计的主题色调是黑色、蓝色和...
1. 帮助企业迅速掌握市场动态,减少市场开发的风险和时间成本。 2. 分担投资风险,降低交易风险,使企业能集中资源在核心业务上。 3. 减少销售成本,利用代理商的网络和资源扩大销售覆盖面。 4. 完善售后服务系统,...
如同父母关心孩子的成长一样,代理商需要关注市场动态,防止价格战(砸价)、窜货等不良现象,维护市场的稳定和秩序。要认识到,市场是代理商的责任,不能依赖他人来管理和维护,应主动采取行动,而不是等待别人解决...
3. 行业经验:有相关行业经验的代理商更熟悉市场动态,能更快适应并推广产品。 4. 信誉良好:良好的商业信誉是确保合作关系稳定的重要因素。 5. 合作意愿:代理商对企业的认同度高,愿意投入资源共同开发市场。 在...
通过这个项目,开发者可以深入理解MyBatis这一流行的Java持久层框架,以及与其相关的动态代理技术。 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和...
1. 正确认识渠道价值:渠道对代理店的重要性,包括提供稳定的销售网络、创造利润、增强竞争力等。 2. 布局销售渠道:代理店需明确自己的目标市场和网点。 3. 开发销售渠道:可通过自建或借助分销商来建立渠道。 4. ...
代理商需认识到市场的重要性,不能仅仅依赖于送货收款,而是要关注市场的健康发展,维护市场秩序,防止价格战和窜货等问题。 2. **品牌经营理念的认同**:作为代理商,了解并接受代理品牌的经营理念至关重要。这...
3. **清晰认识厂家关系**:理解与厂家的合作本质是利益关系,而非长期绑定。代理商需保持独立,灵活应对厂家可能的变化,如撤换、收回经营权等。 4. **公司化运作**:提升业务水平,将个体户模式转变为公司化运作。...
面对市场营销环境的不确定性,如流通业发展滞后、市场需求和竞争的不可预测性,企业必须认识到市场竞争的本质已不再仅仅是单一产品或企业的竞争,而是整个产业链条的竞争,即企业需要构建基于价值链的整体竞争战略。...
保险代理人考试的目的是检验从业人员对于保险行业的基本认识、业务处理能力以及职业道德的掌握情况,以确保他们在提供服务时能够符合行业标准,合法合规地开展业务。考试的内容可能会根据国家保险法律法规和保险市场...
直接渠道是指生产商直接销售给消费者,避免了中间环节,有利于企业掌握市场动态,实施长期策略,但可能需要高昂的初始投入和运营成本。而间接渠道则涉及批发商、零售商等中间商,可以覆盖更广泛的市场,但可能受制于...
ASP(Active Server Pages)是一种由微软开发的服务器端脚本环境,用于生成动态网页或Web应用程序。这个"ASP实例开发源码——XYCMS代理商查询认证系统源码 v1.0.zip"是一个基于ASP技术的系统,主要用于代理商的查询...
一、认识访问静态资源与访问动态资源的区别 静态资源:指存储在硬盘内的数据,固定的数据,不需要计算的数据。 如:图片、字体、js文件、css文件等等。在用户访问静态资源时,服务器会直接将这些资源返回到用户的...
1. **定义**:协议中明确了“产品”、“地区”和“商标”的具体含义,确保双方对业务范围有清晰的认识。 2. **委任与法律关系**: - **委任**:甲方委托乙方在特定地区代理销售产品。 - **法律关系**:强调乙方是...