`

认识动态代理

阅读更多
   究竟什么是“动态代理”呢? 它是“代理模式”的一种更灵活的应用,我通过生活中的例子来说明一下代理和动态代理。
   比如我们要买一台电脑,不需要去生产电脑的厂家,而只需要到当地的代售商出购买即可。因为代售商已经预先购进了某品牌的电脑,当消费者来买的时候,可以直接将电脑卖出。这就是“代理模式”的体现,而代理商就是一个“代理角色”。但是这种代理模式存在一个问题:代售商只负责一个品牌的电脑,当消费者需要购买大量不同品牌电脑的时候,就要分别联系不同的代售商,这是一件很麻烦的事情。需要我们对营销机制进行改进,改进后的代售商将不预先购进电脑,等有消费者来购买电脑的时候,代理商再根据消费者需求去不同的生产厂家进货。这样一来,无论消费者需要多少品种的电脑,只需要一个代理商就能满足要求。这种模式便是“动态代理”。
    代理模式:类结构的模式,优点就是不需要更改原有类(被代理类)就能增强原有类(被代理类)的功能,缺点就是必须实现原有类(被代理类)的接口
    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 AOP代理详细介绍

    如果一个类实现了一个或多个接口,那么Spring就会使用默认的JDK动态代理,如果没有实现任何接口,就会使用cglib来代理。当然我们也可以手动改变这些设置。这也是比较容易掉坑的部分,如果设置错了代理方式,那么在...

    最新厂家代理文件模板通用地区代理合同样板WORD样篇可编辑.docx

    其次,代理产品部分详细列出了乙方代理销售的产品种类,以及未来产品种类可能的变化,确保双方对代理商品有清晰的认识。同时,合同强调了禁止乙方经营与甲方产品竞争的同类产品,以维护甲方产品的市场地位。 代理...

    某产品代理商指引手册.docx

    - 统一代理商的思想认识,确保所有代理商在市场运作中采取一致的标准和方法。 - 明确代理商的责任、权利与义务,促进嘉莉诗销售通道的建设和零售终端的发展。 - 构建更牢固的战略联盟,在管理、组织、文化等多个...

    代理人考试机考软件

    通过记录并分析做错的题目,考生能够清晰地认识到自己在哪些知识点上存在不足,从而进行有针对性的复习和强化。同时,学习资源库为考生提供了包括考试大纲、历年真题、推荐参考书目等在内的一系列学习资料,让考生在...

    78黑蓝绿注册代理企业交互动态全套网站源代码.zip

    该资源是一个名为"78黑蓝绿注册代理企业交互动态全套网站源代码.zip"的压缩包,包含一套完整的网站源代码,适用于构建注册代理类的企业互动网站。从标题和描述我们可以推测,这个源代码设计的主题色调是黑色、蓝色和...

    从开始做白酒代理到成功的白酒代理商有多远资料.pdf

    成功的代理商往往能够建立起一套高效的市场运作机制,比如通过举办品酒会、文化活动等方式来加深消费者对品牌的认识和好感,从而拓宽销售渠道和提升品牌影响力。 在这个过程中,代理商还必须具备坚韧不拔的精神和...

    固网代理上岗培训.pptx

    首先,固网代理需要对销售工作有充分的认识。代理不仅要了解并销售固网业务产品,比如家庭宽带和商业专线等,还需要完成每月的销售任务指标。此外,代理还需参与社区路演等活动,以此拓展销售渠道和增加品牌曝光度。...

    新代理商的开发借鉴.ppt

    1. 帮助企业迅速掌握市场动态,减少市场开发的风险和时间成本。 2. 分担投资风险,降低交易风险,使企业能集中资源在核心业务上。 3. 减少销售成本,利用代理商的网络和资源扩大销售覆盖面。 4. 完善售后服务系统,...

    如何开发渠道代理商.doc

    3. 行业经验:有相关行业经验的代理商更熟悉市场动态,能更快适应并推广产品。 4. 信誉良好:良好的商业信誉是确保合作关系稳定的重要因素。 5. 合作意愿:代理商对企业的认同度高,愿意投入资源共同开发市场。 在...

    谈优秀代理商的基本功.doc

    首先,代理商必须视市场如己出,深刻认识到市场的健康与否直接关系到自身的生存和发展。市场如同代理商的孩子,需要细心地呵护、培育,从而确保其持续发展。这意味着代理商应主动承担起市场的管理责任,而不是单纯地...

    策略模式和代理模式.docx

    这一模式强调在运行时根据不同的条件选择不同的算法,即动态地改变对象的行为。在策略模式的实现中,通常会有一个策略接口,不同的策略类实现这个接口并提供具体的算法实现。客户端代码并不直接与具体策略类打交道,...

    销售代理商合同1.pdf

    明确产品范围能够避免销售过程中的混淆和冲突,确保甲方和乙方都对销售内容有着清晰的认识和共识。 在**代理权限**方面,合同赋予了乙方作为独家代理商的地位,使乙方有权管理其代理区域内的经销商,并禁止跨区域...

    保险代理人考试题目(含答案).pdf

    6. 客户服务与管理部分,考试将检验代理人对客户服务重要性的认识,以及在客户资料管理和投诉处理方面的能力。 7. 最后,在行业发展趋势和专业知识更新方面,考试题目可能关注保险行业的最新动态,新产品的推出以及...

    狂神说mybatis-29道题源码(练习项目,解压在开发工具中打开即可)

    通过这个项目,开发者可以深入理解MyBatis这一流行的Java持久层框架,以及与其相关的动态代理技术。 MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和...

    合作共赢实现代理店快速发展[学员版]1.pptx

    1. 正确认识渠道价值:渠道对代理店的重要性,包括提供稳定的销售网络、创造利润、增强竞争力等。 2. 布局销售渠道:代理店需明确自己的目标市场和网点。 3. 开发销售渠道:可通过自建或借助分销商来建立渠道。 4. ...

    完美版资料如何与代理商沟通.doc

    这份市场洞察力不仅有助于在谈判中占据有利地位,还能让代理商认识到我们对市场的深入理解和专业的行业分析能力。 准备工作还包括明确沟通目标和策略。例如,确定是要达成产品代理协议,还是寻求长期的战略合作;...

    优秀代理商的基本功35305174.docx

    代理商需认识到市场的重要性,不能仅仅依赖于送货收款,而是要关注市场的健康发展,维护市场秩序,防止价格战和窜货等问题。 2. **品牌经营理念的认同**:作为代理商,了解并接受代理品牌的经营理念至关重要。这...

Global site tag (gtag.js) - Google Analytics