2016-05-21 61 views
-1

我正在嘗試使用@Named組件創建Java EE應用程序。我可以訪問一個命名的java bean嗎?

import javax.inject.Named; 

@Named 
public class MyNamedBean { 
    public int myMethod() { ... } 
} 

但由於某些原因,我需要從另一個java bean訪問這個命名的java bean的方法。那我該怎麼做呢?我應該使用@Inject註釋嗎?

我不知道應該添加什麼標籤。如果需要,請編輯問題。

回答

0

是的,註釋@Inject可以用來注入豆MyNamedBean到另一個bean,然後訪問從注入的bean想要的方法。

例子:

Zoo.java

import javax.inject.Inject; 

public class Zoo { 

    @Inject 
    private Dog dog; 

    public Zoo() { 
    } 

    public void talk() { 
     dog.talk(); 
    } 
} 

Dog.java

import javax.inject.Named; 
import javax.inject.Singleton; 

@Named 
@Singleton // optional 
public class Dog { 

    public void talk() { 
     System.out.println("wowowo~ ฅ^•ﻌ•^ฅ"); 
    } 
} 
+0

動物園必須是豆太,對不對? –

+0

好問題,我不知道... @PeterRader –

+1

在Spring CDI中(我確定)它必須是一個Bean(在同一範圍或同一範圍的代理中),或者它必須由手動自動裝配。 –

相關問題