当前位置: 首页 > 知识库问答 >
问题:

获取spring bean的新实例

江仲渊
2023-03-14

我有一个名为MyInterface的接口。实现MyInterface的类(我们称之为MyImplClass)也实现了Runnable接口,因此我可以使用它实例化线程。这是我的密码了。

for (OtherClass obj : someList) {
    MyInterface myInter = new MyImplClass(obj);
    Thread t = new Thread(myInter);
    t.start();
} 

我要做的是在我的ApplicationContext.xml中声明实现类,并为每次迭代获得一个新实例。所以我的代码看起来如下所示:

for (OtherClass obj : someList) {
    MyInterface myInter = // getting the implementation from elsewhere
    Thread t = new Thread(myInter);
    t.start();
} 

如果可能的话,我还想保持国际奥委会的模式。
如何执行此操作?
谢谢

共有1个答案

东龙野
2023-03-14

您可以使用spring scope原型尝试工厂模式,如下所示。定义一个抽象工厂类,它将为您提供MyInterface对象

public abstract class MyInterfaceFactoryImpl implements MyInterfaceFactory {

@Override
public abstract MyInterface getMyInterface();

}

然后定义Spring bean.xml文件,如下所示。请注意myinterfacebean被定义为prototype(因此它总是为您提供新的实例)。

<bean name="myinterface" class="com.xxx.MyInterfaceImpl" scope="prototype"/>

然后用工厂方法名定义factorybean。

<bean name="myinterfaceFactory" class="com.xxx.MyInterfaceFactoryImpl">
    <lookup-method bean="myinterface" name="getMyInterface" />
</bean>

现在可以调用MyInterfaceFactory来获取新实例。

for (OtherClass obj : someList) {
        MyInterface myInter = myInterfaceFactory.getMyInterface();
        Thread t = new Thread(myInter);
        t.start();
}
 类似资料:
  • 本文向大家介绍android Jsoup获取网站内容 android获取新闻标题实例,包括了android Jsoup获取网站内容 android获取新闻标题实例的使用技巧和注意事项,需要的朋友参考一下 近期做简单的新闻客户端界面使用到了Jsoup获取,使用起来特别方便,这也是被我一个学长称为学android网络必学的一个东西,在此也是分享一下自己近期所学。 首先还是给出效果: 上面是通过text

  • 我想制作一个AngularJS Spring MVC Hibernate MySQL应用程序。我不知道如何配置SpringBean,这样我就可以对我的存储库和实体类使用自动连接的注释。 pom.xml依赖: 实体类: 的存储库: 的控制器: 配置类:

  • 本文向大家介绍Python 获取新浪微博的最新公共微博实例分享,包括了Python 获取新浪微博的最新公共微博实例分享的使用技巧和注意事项,需要的朋友参考一下 API: statuses/public_timeline  返回最新的200条公共微博,返回结果非完全实时 CODE: RESULT: 原文地址:http://blog.csdn.net/guaguastd/article/details

  • 我有一个表,其中包含。 我还有一个硬编码表,其中我已经为每个国家/地区创建了一个区域,国家/地区是主键。 我想加入

  • 问题内容: 如果我从中创建函数的基类是派生该实例的类的基类,那么如何查找在Python中创建对象实例的类的名称? 我想也许检查模块可能在这里帮助了我,但似乎没有给我我想要的东西。除了解析__class__成员之外,我不确定如何获取此信息。 问题答案: 你是否尝试过该类的属性?即会给你班级的名字,我想这就是你想要的。 此方法仅适用于新式类。你的代码可能使用一些旧式类。这两种方法均适用:

  • 下面是我的spring配置文件[springbeans.xml] 我的StudentDAOImpl类将实现StudentDAO接口,它将具有如下方法 最后主类