2010-09-06 76 views

回答

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连线东西放在一起(春的核心工作),即注入Bar落实到你的Foo服务。

+0

我不确定你的意思。我在这个框架中没有经验。如果你能解释它,它会帮助我解决它。 – Joe 2010-09-06 02:13:16

+0

你能解释一下吗?我有两个不同的服务类。 – Joe 2010-09-06 02:22:33

+1

@Joe我不知道如何更清楚地解释事情。你究竟在问什么?关于Spring的教程? – 2010-09-06 02:30:12

0

这是使用依赖注入框架的要点。这个想法是你只需声明依赖关系,框架将它们连接起来。例如

Class A{ 
    private B b; 
    public void setB(B b) { this. b=b;} 
} 

Class B{ 
    .... 
} 

然后连接框架以将B实例注入到A.如果从框架中获得A,则已经提供B. 在A实例中应该没有代码明确设置B实例。

查找一些引用dependency injection

0

您还可以从春季别的什么,只要你有机会获得在服务中存在的背景下或bean工厂。如果您不想遍历上下文,则可以简单地将服务引用传递给配置文件中的任一服务。