【问题标题】:What are the benefits of proxying by class as opposed to proxying by interface (Spring)?与通过接口(Spring)代理相比,按类代理有什么好处?
【发布时间】:2009-07-16 17:34:16
【问题描述】:

我一直对一些我现在必须维护的应用程序坚持使用类代理而不是接口代理感到非常恼火。更具体地说,我有代理的服务层类,但我不能使它们成为最终的(即使它们应该是),因为出于某种原因,有人决定它们应该由实际的类代理,而不是通过接口(尽管所有无论如何,这些类中有接口)。

除了不必制作接口之外,还有什么真正的理由通过目标类进行代理,而不是在 Spring 的 AOP 配置中基于目标接口进行代理?

【问题讨论】:

    标签: spring proxy


    【解决方案1】:

    只有当你真的希望类不改变时;通过接口代理会更强大,因为它更灵活,但是如果你真的想将事情锁定在一个单一的实现中,那么你会做按类代理。我可以想象一种情况,在这种情况下,人们可能希望保持对专有类解决方案的依赖,而不是让任何接口实现者成为可代理的,但这些对我来说似乎是边缘情况;我通常会假设使用界面。

    【讨论】:

    • 这就是我对您的回答不太了解的地方。如果您按目标类代理,则您代理的类不能成为最终类。如果由于某种原因您编写代码以依赖于注入实际实现,您仍然可以扩展实现(假设它是目标类代理的候选对象),因此它不会被锁定为单个实现,只需单个继承树...
    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 2012-03-05
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多