Spring in action 02 -- 装配 Bean(JavaConfig)遇到的问题
2016-05-29 19:43
686 查看
通过Java代码来装配Bean,遇到一个问题:bean 未能成功的注入,是因为什么呢?
这是示例代码结构:
配置类: CDPlayerConfigJava.java
实现类 : CDPlayerJava.java
接口类: CompactDiscJava.java
接口类: MediaPlayerJava.java
实现类: SgtPeppersJava.java
测试类: CDPlayerJavaTest.java
测试失败:
CDPlayerJava 与CompactDiscJava 这两个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 没有被注入进来呢?
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树