- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring实战——通过Java代码装配bean
Spring实战——通过Java代码装配bean
基于注解的自动化注入固然优雅,但是它也有鞭长莫及的时候,这时候就来看看Java代码如何装配bean的。
还记的上篇的配置类CDPlayerConfig是长这样的
@Configuration
@ComponentScan
public class CDPlayerConfig {
}
有了这个万能的组件扫描注解,一切都是那么只能,只需要在bean类上加上如@Component注解,Spring就会自动为该类创建相应的bean类。
但是现在因为我们有一些第三方类库,我们没办法去深入类中加上这些标记了,所以@ComponentScan就失去了威力和意义。
这篇的CDPlayerConfig应该长这样
@Configuration
public class CDPlayerConfig {
}
@Configuration注解表示该类是一个配置类。显然要创建的bean的信息是要放到这个类中的。
基于其他类以及类中的方法不变比如CompactDisc, CDPlayer, SgtPeppers等。编写测试方法如下
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfig.class)
public class CDPlayerTest {
@Rule
public final StandardOutputStreamLog log = new StandardOutputStreamLog();
@Autowired
private MediaPlayer player;
@Autowired
private CompactDisc cd;
@Test
public void cdShouldNotBeNull() {
assertNotNull(cd);
}
@Test
public void play() {
player.play();
assertEquals(
Playing Sgt. Peppers Lonely Hearts Club Band by The Beatles\r\n,
log.getLog());
}
}
首先从代码来看就会出现如下的注入错误
这里显示MediaPlayer无法注入。同时运行程序得到结果如下
Testing started at 0:20 ...
0:20:03: Executing external tasks cleanTest test...
:cleanTest
:compileJava
:processResources UP-TO-DATE
:classes
:compileTestJava
:processTestResources UP-TO-DATE
:testClasses
:test
一月 15, 2017 12:20:06 上午 org.springframework.test.context.TestContextManager retrieveTestExecutionListeners
信息: Could not instantiate TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener]. Specify custom listener classes or make the default listener classes (and their required dependencies) available. Offending class: [javax/servlet/ServletContext]
一月 15, 2017 12:20:06 上午 org.springframework.test.context.TestContextManager retrieveTestExecutionListeners
信息: Could not instantiate TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener]. Specify custom listener classes or make the default listener
您可能关注的文档
- ANSYS单元类型选择大全.doc
- 2013年全国剑桥杯英语能力竞赛题初中B组.doc
- 一、房地产及建筑名词解释.doc
- 新目标英语八下unit6重难点.doc
- 朗文3A Chapter6复习提要.doc
- 数据库常用名词释义表.docx
- 打印 期末复习版 加图后 打印 《选修6》 复习提纲.doc
- 2016市场调查与预测名词解释与复习提纲.docx
- 1A需要认读的单词一.doc
- 中考1600词英汉对照(学生版——李勇).doc
- 上海石化2024年度环境、社会和治理报告(ESG).docx
- 低代码引擎技术白皮书-220页.docx
- 医疗健康与生命科学-2025年市场展望与薪酬报告.docx
- 金斯瑞2024年环境、社会及管治报告.docx
- 2025全球大型企业CEO洞察力研究报告 PROACTIVELY EMBRACING CHANGE Global CEOs feel ready for the unexpected in a volatile world.docx
- 2024年度债务重组市场观察报告:规则完善篇.docx
- 湖北电力交易中心:2025年度湖北电力市场化交易百问百答.docx
- 宏观观察2025年第16期(总第588期):我国出口竞争力(上):整体变化与商品结构特征 -中国银行.docx
- 中车时代电气2024年社会责任暨环境、社会及管治(ESG)报告.docx
- 通信行业深度报告-云厂商仍保持算力高需求-算力租赁需求有望边际向上.docx
文档评论(0)