我有一种情况,我想通过工厂对象动态创建一个对象,但需要通过spring上下文创建对象,以允许自动装配依赖项.我知道有很多其他方法可以解决这个问题 - 例如使用服务定位器模式 - 但是如果可能的话我想这样做.
想象一下,我有两个对象:
class OuterObject {
List<InnerObjectInterface> innerObjs;
...
}
class InnerObject implements InnerObjectInterface{
@Autowired
SomeDependency someDependency;
...
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个工厂,它可以完成以下工作:
class OuterObjectFactory {
private innerObject = new InnerObject();
public OuterObject construct(params){
OuterObject o = new OuterObject();
List<InnerObjectInterface> inners = new ArrayList<InnerObjectInterface>();
...
for(some dynamic condition){
...
inners.add(createInnerObject());
...
}
}
public createInnerObject(){
return innerObject;
}
}
Run Code Online (Sandbox Code Playgroud)
我的spring-context.xml看起来像:
<bean id="outerObjectFactory" class="path.OuterObjectFactory" />
<bean id="innerObject" class="path.InnerObject" factory-bean="outerObjectFactory" factory-method="createInnerObject" />
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.只创建了一个innerObject,我希望它的行为类似于scope ="prototype".如果我将scope ="prototype"添加到bean定义中:
<bean id="innerObject" class="path.InnerObject" factory-bean="outerObjectFactory" factory-method="createInnerObject" scope="prototype"/>
Run Code Online (Sandbox Code Playgroud)
然后它似乎创建了许多innerObjects,但它们没有正确连线.我的同事认为, …
我知道JavaScript 中有一个布尔对象,但我想知道是否有办法访问金属,这bit是生成此布尔对象核心的原始单元.
牢记SOA的概念,我的意图是提供几种不同的服务,这些服务利用相同的数据模型.想象一下扑克应用程序 - 我们可能有以下服务:
所有这些服务都可以利用相同的模型(可能在必要时提供额外的模型信息).
在游戏中!我可以将这个数据模型外化,但保持使用Play获得的好处.例如,运行时重新编译.
模块看起来似乎可以完成这项工作,但几乎没有关于它们的文档,给出的示例提供了相反的范例 - 服务是模块,核心播放应用程序提供了功能.
任何指导将不胜感激.
有时我想在页面上放置大量数据,以避免对动态内容进行额外的AJAX调用。我不知道这样做是否会影响我的表现。