Java Springbean在applicationContext.xml中的声明中可以是它自己的属性吗?
我需要从Java Springbean在applicationContext.xml中的声明中可以是它自己的属性吗?,java,spring,spring-mvc,Java,Spring,Spring Mvc,我需要从ruberstampserviceinpl类内部调用ruberstampservice的公共方法 要从内部引用rubberStampService,我可以这样做一个自引用bean声明: <beans:bean id="rubberStampService" class="com.rubberly.RubberStampServiceImpl"> <beans:property name="rubberStampService" ref="rubberStampS
ruberstampserviceinpl
类内部调用ruberstampservice
的公共方法
要从内部引用rubberStampService
,我可以这样做一个自引用bean声明:
<beans:bean id="rubberStampService" class="com.rubberly.RubberStampServiceImpl">
<beans:property name="rubberStampService" ref="rubberStampService" />
</beans:bean>
听起来像是一个无限递归的、等待发生的内存不足错误。为什么不让服务调用自己的方法并使用它来完成呢?你不需要新的参考资料,只要“这个”
看不出这种方法有任何问题 Spring可以处理循环依赖(如果它们是可解析的,即如果不使用构造函数注入),包括自引用bean的情况。唯一的区别是,在循环依赖的情况下,bean在注入时可能没有完全初始化 当bean可以配置为使用不同的合作者时,它可能很有用,但在某些特定情况下,它需要使用自身 另请参见:
@Transactional
,@Profiled
,等等)。这就是我发现这个问题时遇到的问题。或者,您可能会在注入不同bean的地方使用您的bean,或者在希望注入相同bean的地方使用您的bean。
public interface FooService()
{
void foo();
void bar();
}
public class FooServiceImpl implements FooService
{
public void foo() { System.out.println("calling foo"); }
public void bar()
{
this.foo(); // just call your own method.
}
}