2012-03-02 10 views
2

私は春のアプリケーションを開始するためのアノテーションベースのメソッドがあるのだろうか?コンテキストを取得した後、豆にオートワイヤリングするための方法をベース注釈とSpringアプリケーションコンテキストを取得するためのアノテーションベースのメソッドはありますか?

public static void main(String[] args) { 

    ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml"); 

    User user = (User)ctx.getBean("user"); 
    user.createUser(); 

} 

、すなわち以下、これを交換しますか?

答えて

0

ClassPathApplicationContextXmlコードを回避することはできませんが、以下のようにしてctx.getBean( "user")を回避できます。理想的には、XMLが、バネが物事を注入したい場所のパッケージをスキャンするように要求することです。ここでは唯一のことは、春のアノテーションが春に認定されたクラスで動作するため、春のコンポーネントとしてメインクラスを宣言していることです。 Classpathapplicationcontextを使用したxmlのロードを回避することはできません。テストのための@ContextConfiguration 非常に有用と呼ば:春の注釈があり

package com.spring.sample; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.stereotype.Component; 

import com.spring.sample.component.Sample; 

@Component 
public class SampleMain { 

    @Autowired 
    Sample testSample; 

    static ApplicationContext appCtx = new ClassPathXmlApplicationContext("META-INF/webmvc-application.xml"); 

    public static void main(String[] args){ 

     SampleMain sampleMain = appCtx.getBean(SampleMain.class); 
     sampleMain.invokeSample(); 
    } 

    private void invokeSample(){ 
     testSample.invokeSample(); 
    } 

} 
3

すべての人がその注釈を理解して処理しなければならないとは思っても、私はそうすることはできないと思います。もし春がまだ初期化されていなければ、誰が?

1

。 テストサポート(testNG or JUnit)のために作成された春の抽象クラスの1つを拡張する必要があります。

testNGまたはJUnitのためのAbstractTransactionalJUnit4SpringContextTests TOR例えばAbstractTransactionalTestNGSpringContextTests

次に、あなただけの@ContextConfiguration注釈(注釈型を含むクラスのために、インターフェイス()、または列挙型の宣言)を使用

junitためのいくつかのサンプルコードテスト:

@RunWith(SpringJUnit4ClassRunner.class) 
// ApplicationContext will be loaded from "/applicationContext.xml" and "/applicationContext-test.xml" 
// in the root of the classpath 
@ContextConfiguration(locations={"/applicationContext.xml", "/applicationContext-test.xml"}) 
public class MyTest { 
    // class body... 
} 

は読んでください: http://static.springsource.org/spring/docs/2.5.x/reference/testing.html

関連する問題