我正在阅读Java代理,我们知道Spring、Hibernate、Spring、Ehcache是它的一个实现。我感到困惑,因为SpringCore将创建一个代理,Hibernate将创建一个代理,如果我们在一个SpringAOP项目中使用它们,SpringAOP或Ehcache也会这样做。
将创建多少个代理程序?可以帮助我解决这个问题并给我举一些例子吗?
发布于 2016-12-23 03:39:55
这些框架中的每一个都会创建任意数量的代理,这些代理都是基于特定的设计选择和配置。尽管如此,要想有任何想法,唯一的方法就是对您的应用程序进行分析。
大多数使用代理的框架都出于类似的原因利用它们。这些代理的作用是充当占位符,这些占位符看起来像我们的代码所知道和使用的对象;但是内部实现细节是隐藏的,通常由特定于框架的业务逻辑补充。
例如,hibernate可能将负载缓慢的对象集合公开为代理的集合。每个代理看起来都像我们的应用程序在该集合中期望的对象;但是,该代理的内部状态通常直到第一次访问时才会加载。在这种情况下,代理节省了内存消耗、结果集解析和数据库带宽,以及大量的其他东西。
https://stackoverflow.com/questions/41294650
复制相似问题