锘??xml version="1.0" encoding="utf-8" standalone="yes"?>天堂资源在线亚洲,一区二区三区日本视频,蜜芽视频在线观看http://www.aygfsteel.com/gembin/category/34815.html<font color="red">OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP</font><br/><br/> <font color="green">HBase, Hadoop, ZooKeeper, Cassandra</font><br/><br/> <font color="blue">Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.</font><br/><br/> <font color="black"> There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.</font> <br/><br/> <a >About Me</a> <script type="text/javascript" src="http://platform.linkedin.com/in.js"></script><script type="in/share" data-counter="right"></script> zh-cnThu, 03 May 2012 11:24:21 GMTThu, 03 May 2012 11:24:21 GMT60Spring AOP: JDK Dynamic Proxy vs. CGLib proxyhttp://www.aygfsteel.com/gembin/archive/2012/05/03/377268.htmlgembingembinThu, 03 May 2012 05:16:00 GMThttp://www.aygfsteel.com/gembin/archive/2012/05/03/377268.htmlhttp://www.aygfsteel.com/gembin/comments/377268.htmlhttp://www.aygfsteel.com/gembin/archive/2012/05/03/377268.html#Feedback0http://www.aygfsteel.com/gembin/comments/commentRss/377268.htmlhttp://www.aygfsteel.com/gembin/services/trackbacks/377268.htmlSpring's AOP is proxy-based. Spring provides two different options to create the proxies. One is based on JDK dynamic proxies and works with interfaces, the other one utilizes CGLib and is based on classes. (That's why the property is called proxyTargetClass respectively proxy-target-class.) For the moment I just want to provide a quick summary on the pros and cons of both options:

JDK dynamic proxies:

  • The class has to implement interfaces. Otherwise you will get ClassCastExceptions saying that $Proxy0 can not be casted to the particular class.

  • Eventually dynamic proxies force you to program to interfaces since you can not cast the proxy to the class - a feature I really like about them.


CGLib proxies:

  • The proxies are created by sub-classing the actual class. This means wherever an instance of the class is used it is also possible to use the CGLib proxy.

  • The class needs to provide a default constructor, i.e. without any arguments. Otherwise you'll get an IllegalArgumentException: "Superclass has no null constructors but no arguments were given." This makes constructor injection impossible.

  • The proxying does not work with final methods since the proxy sub class can not override the class' implementation.

  • The CGLib proxy is final, so proxying a proxy does not work. You will get an IllegalArgumentException saying "Cannot subclass final class $Proxy0". But this feature is usually not needed anyway. 

  • Since two objects are created (the instance of the class and the proxy as instance of a sub class) the constructor is called twice. In general this should not matter. I consider changing the class' state based on constructor calls a code smell anyway.

  • You have CGLib as additional dependency.

    ref:  http://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/htmlsingle/spring-framework-reference.html#aop-introduction-proxies 




gembin 2012-05-03 13:16 鍙戣〃璇勮
]]>
涓篠pring Security娣誨姞IP闄愬埗鍔熻兘http://www.aygfsteel.com/gembin/archive/2010/10/11/334456.htmlgembingembinMon, 11 Oct 2010 09:24:00 GMThttp://www.aygfsteel.com/gembin/archive/2010/10/11/334456.htmlhttp://www.aygfsteel.com/gembin/comments/334456.htmlhttp://www.aygfsteel.com/gembin/archive/2010/10/11/334456.html#Feedback0http://www.aygfsteel.com/gembin/comments/commentRss/334456.htmlhttp://www.aygfsteel.com/gembin/services/trackbacks/334456.html闃呰鍏ㄦ枃

gembin 2010-10-11 17:24 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 吴旗县| 龙井市| 都昌县| 延寿县| 呼玛县| 南京市| 石嘴山市| 东安县| 安徽省| 神木县| 高淳县| 临沂市| 冕宁县| 边坝县| 临潭县| 兴隆县| 邢台市| 缙云县| 丽水市| 蒙城县| 平泉县| 香港 | 嘉鱼县| 曲沃县| 达尔| 汉源县| 盐山县| 曲麻莱县| 沾益县| 瑞昌市| 江源县| 八宿县| 合山市| 望奎县| 韶山市| 乐都县| 沧州市| 宁都县| 河南省| 江孜县| 太仆寺旗|