您的位置:首页 > 编程语言 > Java开发

Spring in action 02 -- 装配 Bean(JavaConfig)遇到的问题

2016-05-29 19:43 686 查看
通过Java代码来装配Bean,遇到一个问题:bean 未能成功的注入,是因为什么呢?

这是示例代码结构:



配置类: CDPlayerConfigJava.java

package com.stanxu.javaconfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CDPlayerConfigJava {

@Bean
public CompactDiscJava sgtPeppersJava(){
return new SgtPeppersJava();
}

@Bean
public MediaPlayerJava cdPlayerJava(){
return new CDPlayerJava(sgtPeppersJava());
}
}


实现类 : CDPlayerJava.java

package com.stanxu.javaconfig;

public class CDPlayerJava implements MediaPlayerJava {

private CompactDiscJava cd;

public CDPlayerJava(CompactDiscJava cd) {
// TODO Auto-generated constructor stub
this.cd = cd;
}

public void play(){
cd.play();
}

}


接口类: CompactDiscJava.java

package com.stanxu.javaconfig;

public interface CompactDiscJava {
void play();
}


接口类: MediaPlayerJava.java

package com.stanxu.javaconfig;

public interface MediaPlayerJava {
void play();
}


实现类: SgtPeppersJava.java

package com.stanxu.javaconfig;

public class SgtPeppersJava implements CompactDiscJava {

private String title = "Sgt. Pepper's Lonely Hearts Club Band";
private String artist = "The Beatles";

public void play() {
// TODO Auto-generated method stub
System.out.print("Playing " + title + " by " + artist);
}

}


测试类: CDPlayerJavaTest.java

package com.stanxu.javaconfig;

import org.junit.Rule;
import org.junit.Test;

import static org.junit.Assert.*;

import org.junit.contrib.java.lang.system.StandardOutputStreamLog;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfigJava.class)
public class CDPlayerJavaTest {

@Rule
public final StandardOutputStreamLog log = new StandardOutputStreamLog();

private CDPlayerJava player;

private CompactDiscJava disc;

@Test
public void cdShouldNotBeNull(){
assertNotNull(disc);
}

@Test
public void play(){
player.play();
assertEquals("Playing Sgt. Pepper's Lonely Hearts Club Band by The Beatles", log.getLog());
}
}


测试失败:

CDPlayerJava 与CompactDiscJava 这两个bean 没有被注入进来呢?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring java bean