首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有动态实现的Spring介绍

具有动态实现的Spring介绍
EN

Stack Overflow用户
提问于 2009-02-23 11:48:16
回答 1查看 895关注 0票数 0

我试图使用Spring框架为类(让我们称之为C)动态地实现一个特定的接口(让我们称之为I)。在Spring中,这被称为介绍(其他语言中的混合语言)。在编译时,C不实现I。使用@DeclareParents注释,我可以使用AspectJ语法来实现它。

问题是I的实际实现(让我们称之为IImpl)是独立的(不依赖于上下文)--我应该只在注释中提供IImpl类名。我想要实现的是以某种方式规定的执行。例如,我想为IImpl实例提供一个参数,比如封闭的C实例,这样IImpl中的逻辑将根据我引入的C实例的不同而有所不同。我需要一些方法来设置IImpl实例和引入的C实例之间的依赖关系。

目前我找不到办法去做。有什么想法吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2009-02-23 12:00:57

恐怕您正在寻找的解决方案的“表单”是不可能的,因为AJ字节码编织器(编译或加载时间无关紧要)需要知道如何‘实现’您的方法。但是,我认为你的问题可能有一个代表的形式的解决办法。基本上,您将告诉C使用IImpl实现接口I,并使用IImpl作为委托器,这意味着IImpl将将所有方法调用委托给可以在运行时配置/更改的IRuntimeImpl。IImpl基本上是:

代码语言:javascript
复制
public class IImpl implements I {
    private I delegate;

    public void interfaceMethod() {
        delegate.interfaceMethod()
    }
}

在运行时,您可以将您为我选择的任何运行时实现传递给IImpl。

./alex

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/577382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档