阿狸先森|为何设置@Scope("prototype")无效?( 二 )
ScopedProxyMode.TARGET_CLASS , 创建基于类的代理(使用CGLIB)
理解:除了接口以外 , Spring还可以使用CGLIB创建一个代理 , 该代理类是目标类的子类 , CGLib底层采用ASM字节码生成框架 , 使用字节码技术生成代理类 。 本质上 , 它执行以下操作
Foo target = new Foo();net.sf.cglib.proxy.Enhancer enhancer = new net.sf.cglib.proxy.Enhancer();enhancer.setInterfaces(target.getClass().getInterfaces());//该代理类是目标类的子类enhancer.setSuperclass(target.getClass());net.sf.cglib.proxy.MethodInterceptor interceptor = ... // some proxy specific logic, likely referencing the `target`enhancer.setCallback(interceptor);Foo proxy = (Foo) enhancer.create();结论:如果正在对interfaces进行编程(目标对象实现了接口) , 那么设置proxyMode=ScopedProxyMode.INTERFACES 即可 。 如果不是 , 则需设置proxyMode =ScopedProxyMode.TARGET_CLASS 。
最后感谢您的阅读 , 如果喜欢本文欢迎关注和转发 , 本头条号将坚持持续分享IT技术知识 。 对于文章内容有其他想法或意见建议等 , 欢迎提出共同讨论共同进步 。
参考文章
@Scope(prototype)%E7%9A%84%E6%AD%A3%E7%A1%AE%E7%94%A8%E6%B3%95/
推荐阅读
- 检察日报|他为何掏空自己的公司 无锡市惠山区检察官揭开6000万元系列虚假诉讼之谜
- WBO|?新疆伊珠和烟台金沙岸葡萄酒添加甜蜜素被查!加“甜”为何屡禁不止?
- 吴磊|演员吴磊23万航空里程积分被粉丝盗刷,为何出现如此漏洞?
- 【】揭开国家草原自然公园的神秘面纱:为何建?怎么建?
- 央视新闻|大量死鱼、榴莲、猪蹄遍布海滩 粤桂海滩为何频现“另类海货”?
- 中国新闻网|服贸会观察:区块链为何能成全球贸易“助推器”?
- 【】服贸会观察:区块链为何能成全球贸易“助推器”?
- 中国天气网|又一个!“海神”携强风雨袭东北 为何台风最近总爱去东北?
- 晨株洲|炎陵为何赢得这么多投资商青睐,一天签约28个项目
- 央视新闻客户端|抗议活动持续超100天,美国这地“战火”为何愈演愈烈?
