我的代码如下所示:
MyContext context = new MyContext();
context.start();
MyEntity entity = context.getEntity();
我想将MyEntity实例注入各种类。 但我不知道如何设置我的Spring配置,我首先创建一个对象,然后在其上调用一个方法,然后最后调用另一个返回我想要注入的实体的方法。
编辑2 - 完全删除了字符串
答案 0 :(得分:2)
使用Spring注入的最常见的依赖项类型不依赖于用户输入的构造。这包括数据访问对象,服务等,
您正在谈论注入域构造对象,构造依赖于用户输入直接或间接。
Spring提供@Configurable
注释来注入使用new
运算符创建的域对象。您可以在互联网上搜索“@Configurable Domain Driven Design”,以获得如何实现此功能的示例。我自己在我的应用程序中使用它并写了一篇简单的帖子here,可能会帮助你开始。
修改强>:
要根据更新后的问题中的规范创建MyEntity类型的bean,您需要
context.start()
并返回MyEntity的实例。MyEntityFactory类如下:
public class MyEntityFactory
{
public static MyEntity getMyEntity(MyContext context)
{
context.start();
return context.getEntity();
}
}
spring bean配置如下:
<bean id="myContext" class="FQCN.Of.MyContext" />
<bean id="myEntity" class="FQCN.Of.MyEntityFactory" factory-method="getMyEntity">
<constructor-arg ref="myContext" />
</bean>
由于MyEntity
是一个单例bean,因此工厂方法只会被调用一次,顺便说一句。
有关使用工厂方法here创建bean的更多信息。