从另一个调用Spring服务类

时间:2010-09-06 02:02:51

标签: java spring

我的项目中有两个spring bean服务类。是否可以从另一个呼叫?如果是的话,怎么办呢?

3 个答案:

答案 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实例时,应该没有代码。

查看对dependency injection

的一些引用

答案 2 :(得分:0)

只要您可以访问存在服务的上下文或bean工厂,就可以在spring中调用任何其他内容。如果您不想遍历上下文,只需将服务引用传递给配置文件中的任一服务即可。