2010-09-06 74 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工廠。如果您不想遍歷上下文,則可以簡單地將服務引用傳遞給配置文件中的任一服務。