我使用spring和maven实现了一个简单的projetc,我的项目包含一个接口和3个类以及pom.xml文件
界面:CompactDisc.java
3个班级:
SgtPeppers.java
实现了CompactDisc
接口
CDPlayersConfig.java
是一个空类,包含自动扫描的注释
CDPlayersTest.java
是用于测试弹簧容器是否工作的测试类。
我的问题是@RunWith(SpringJUnit4ClassRunner.class)和@ContextConfiguration(classes = CDPlayersConfig.class),Eclipse建议第一个注释的这一主张 Class无法解析为一种类型,并且它不理解第二个注释。
您在这里找到代码:
CompactDisc.java
package soundsystem;
public interface CompactDisc {
void play();
}
SgtPeppers.java
package soundsystem;
import org.springframework.stereotype.Component;
@Component
public class SgtPeppers implements CompactDisc{
private String title = "Sgt. Pepper's Lonely Hearts Club Band";
private String artist = "The Beatles";
public void play() {
System.out.println("Playing " + title + "by"+ artist);
}
}
CDPlayersConfig.java
package soundsystem;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan
public class CDPlayersConfig {
}
CDPlayerTest.java
package soundsystem;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.jta.SpringJtaSynchronizationAdapter;
@RunWith(SpringJUnit4ClassRunner.class)//Here is my problem
@ContextConfiguration(classes=CDPlayersConfig.class)//Here is my problem
public class CDPlayerTest {
@Autowired
private CompactDisc cd;
@Test
public void cdShouldNotBeNull() {
assertNotNull(cd);
}
}
pom文件中的依赖项
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.0.5.RELEASE</version>
<scope>test</scope>
</dependency>
答案 0 :(得分:2)
在Eclipse中
右键单击您的项目
选择Maven
选择更新项目
打勾
Update project config from pom.xml
Refresh workspace
Clean projects
完成此操作后,所需的库应可用于Eclipse,并且您应该能够根据需要导入类。
答案 1 :(得分:1)
按Control键并单击该类。 Eclipse将打开文件。复制程序包名称。创建一个新的import语句,然后粘贴程序包名称+类名称。问题解决了。
如果Eclipse在您按住Control键并单击时未打开文件,则说明您的类路径中没有该文件,也没有将其正确导入。
答案 2 :(得分:0)
您缺少SpringJUnit4ClassRunner和ContextConfiguration的导入(导入org.springframework ...)。这就是为什么它们未被识别的原因。
答案 3 :(得分:0)
我看不到
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.ContextConfiguration;
在您的导入部分。另外,也许您应该使用SpringRunner.class而不是SpringJUnit4ClassRunner.class
答案 4 :(得分:0)
您必须添加依赖项:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
然后
import org.springframework.test.context.ContextConfiguration;