- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在“super-context.xml”中有以下情况:
<bean id="conf" class="ee.Conf"/>
<bean id="service" class="ee.Serivce">
<property name="conf" ref="conf">
</bean>
现在我想在各种不同的项目中使用这个“super-context.xml”。假设“sub-context.xml”有:
<import resource="super-context.xml"/>
<bean id="subConf1" class="ee.SubConf">
<property name="confloc" value="classpath:ee/customconf1.sss" />
</bean>
<bean id="subConf2" class="ee.SubConf">
<property name="confloc" value="classpath:ee/customconf2.sss" />
</bean>
...
<bean id="subConfn" class="ee.SubConf">
<property name="confloc" value="classpath:ee/customconfn.sss" />
</bean>
ee.Conf 如下:
public class Conf ... {
...
public void addSubConf(Resource res) {
//configuration resolving from res
}
...
}
ee.SubConf 如下:
public class SubConf ... {
...
@Autowired
ee.Conf superConf;
...
public void setConfloc(Resource res) {
superConf.addSubConf(res);
}
...
}
问题出在上下文加载上。 Bean 按以下顺序初始化(由于上下文文件中的顺序):conf、service、subConf1、subConf2、... subConfn
但是service bean实际上依赖于所有subConf bean(尽管这不能从上下文定义本身推断出来)。当在 subConf bean 定义之后添加“sub-context.xml”中的导入时,它加载正常。
这背后的原因是实现模块化。是否可以强制 bean 尽可能晚地加载(示例中的“service”bean)或使某种类型的 bean 尽快加载(示例中的“subConf”bean),因为“中 bean 的固定顺序” sub-context.xml”部分破坏了所希望的模块化
或者是否有更纯粹的方法来实现这种类型的模块化?
最佳答案
我想说你处理这个问题的方式是错误的。 SubConf
一开始就不应该依赖于 Conf
。只需将 SubConf
对象集合注入(inject)到 Conf
对象中即可。
public class Conf {
@Autowired
private List<SubConf> subconfs;
}
这样,您就不需要 SubConf
调用 Conf
类,这将消除您的循环依赖。
请参阅Spring reference guide有关 Autowiring 的更多信息。
关于java - 尽可能晚地初始化 Spring Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675512/
我知道在 KDB 中,如果您有一个列表,例如... l:`apples`oranges`pears` 您可以像下面这样进行 N 次随机选择: 9?l 但是如何尽可能均匀地选择列表中的每个项目? 最佳答
我真的厌倦了它。我有一个高级 Web 应用程序依赖于大量 Javascript 库(jQuery、jQueryUI、OpenLayers、highcharts、EJSChart 等等)。不用说,Int
我是一名优秀的程序员,十分优秀!