我的项目中有两个spring bean服务类。是否可以从另一个呼叫?如果是的话,怎么办呢?
答案 0 :(得分:5)
我的项目中有两个spring bean服务类。是否可以从另一个人那里打电话?如果是的话,怎么办呢?
规范方法是在第一个服务中声明对第二个服务的依赖,并且只是调用它。
public class FooImpl implements Foo {
private Bar bar; // implementation will be injected by Spring
public FooImpl() { }
public FooImpl(Bar bar) { this.bar = bar; }
public void setBar(Bar bar) { this.bar = bar; }
public Bar getBar() { return this.bar; }
public void doFoo() {
getBar().doBar();
}
}
并将Spring配置为连接在一起(Spring的核心工作),即将Bar
实现注入Foo
服务。
答案 1 :(得分:0)
这是使用依赖注入框架的重点。我们的想法是,您只需声明依赖项,框架就可以连接它们。例如
Class A{
private B b;
public void setB(B b) { this. b=b;}
}
Class B{
....
}
然后连接框架以将B实例注入A中。如果从框架中获得A,则已经提供了B. 在A实例中明确设置B实例时,应该没有代码。
的一些引用答案 2 :(得分:0)
只要您可以访问存在服务的上下文或bean工厂,就可以在spring中调用任何其他内容。如果您不想遍历上下文,只需将服务引用传递给配置文件中的任一服务即可。