1. ホーム
  2. スプリング

applicationContext の読み込みに失敗しました。

2022-02-22 20:41:31

spring4で単体テストを行い、failed to load applicationContextを報告する。

コードはこんな感じです。

<スパン 1. インターフェース

package com.springinaction.test;

public interface CompactDisc {
	public void play();
}


2. 実装クラス
package com.springinaction.test;

import org.springframework.stereotype.Component;

@Component
public class SgtPeppers implements CompactDisc{

	private String title = "Sgt. Pepper's Linel Hearts Cloub Band";
	private String artist = "The Beatles";
	
	@Override
	public void play() {
		System.out.println("Playing " + title + " by " + artist);
	}

}






<スパン 3. 設定クラス(アノテーション付きコンポーネントスキャン)。このアノテーションはSpringのコンポーネントスキャンを開始することができ、デフォルトでは設定クラスと同じパッケージがスキャンされます。

package com.springinaction.test;

import org.springframework.context.annotation;
import org.springframework.context.annotation;

@Configuration
@ComponentScan
public class CDPlayerConfig {

}


4. テストクラス

package com.springinaction.test;

import static org.junit.Assert.*;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfig.class)
//@ContextConfiguration(locations={"classpath:NewFile.xml"}) here is the xml start component scan, because we are using annotated scan, so comment
public class CDPlayerTest {
	
	@Autowired
	private CompactDisc cd;

	@Test
	public void cdShouldNotbeNull(){
		assertNotNull(cd);
	}
}


の中にSpringのjarパッケージがないためです。 http://repo.spring.io/release/org/springframework/spring

spring-framework-4.2.0.RELEASE-dist.zipのダウンロードでは、パッケージの解凍後、にエクスポートされますが、これはOKです。