2017-03-23 10 views
0

私は@Injectアノテーションを使ってJavaで依存関係注入を試みていましたが、私はこのlinkのチュートリアルに従っていました。チュートリアルによると、私は以下を作成しました。Javaの依存性注入

import javax.inject.Inject; 

public class GreetingBean { 


@Inject private static HelloBean helloBean; 

// @Inject 
// public GreetingBean(HelloBean helloBean){ 
//  this.helloBean = helloBean; 
// } 

public static void sayGreeting(){ 
    helloBean.sayHello(); 
} 

public static void main(String[] args) { 
    GreetingBean.sayGreeting(); 
} 
} 

HelloBeanクラスは次のとおりです。

public class HelloBean { 

public void sayHello(){ 
    System.out.println("Hello user"); 
} 
} 

実行時にhelloBeanが初期化されていないことが明らかなnullポインタ例外が発生しました。私がチュートリアルで理解したところによると、@Injectはそれを世話することになっています。私はこの仕事をするためにもっと何かをしなければならないと感じていますが、私は参考文献を見つけることができませんでした。この問題で誰かが私を助けることができますか?

+4

あなたのアプリは普通の '' main''で動いています。依存性注入の世話をするCDIコンテナが必要です。 – f1sh

+3

この記事はJava EEに関するもので、あなたはスタンドアローンのプログラムを書いています。それは2つの異なるトピックです。 – 7663233

答えて

1

標準のJavaアプリケーションでCDIを使用する場合は、hereを参照してください。 (これは参照CDIの実装であるWeldを使用しています)