SPRING IN ACTION 第4版笔记-第二章-001-用@Autowired\@ComponentScan、@Configuration、@Component实现自动装载bean...
1.
1 package soundsystem; 2 import org.springframework.context.annotation.ComponentScan; 3 import org.springframework.context.annotation.Configuration; 4 5 @Configuration //说明此类是配置文件 6 //@ComponentScan //开启扫描,会扫描当前类的包及其子包 7 //@ComponentScan(basePackages={"soundsystem", "video"})//扫描多个包 8 @ComponentScan(basePackageClasses={CDPlayer.class})//指定要扫描的类 9 public class CDPlayerConfig { 10 }
2.
1 package soundsystem; 2 import org.springframework.beans.factory.annotation.Autowired; 3 import org.springframework.stereotype.Component; 4 5 @Component 6 public class CDPlayer implements MediaPlayer { 7 private CompactDisc cd; 8 9 @Autowired 10 public CDPlayer(CompactDisc cd) { //依赖bean的id会叫"cd"??? 11 this.cd = cd; 12 } 13 14 public void play() { 15 cd.play(); 16 } 17 18 }
3.
1 package soundsystem; 2 import org.springframework.stereotype.Component; 3 4 @Component 5 public class SgtPeppers implements CompactDisc { 6 7 private String title = "Sgt. Pepper's Lonely Hearts Club Band"; 8 private String artist = "The Beatles"; 9 10 public void play() { 11 System.out.println("Playing " + title + " by " + artist); 12 } 13 14 }
4.
1 package soundsystem; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Rule; 6 import org.junit.Test; 7 import org.junit.contrib.java.lang.system.StandardOutputStreamLog; 8 import org.junit.runner.RunWith; 9 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.test.context.ContextConfiguration; 11 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 12 13 @RunWith(SpringJUnit4ClassRunner.class) //会自动创建applicationcontext 14 @ContextConfiguration(classes=CDPlayerConfig.class)//指定配置文件 15 public class CDPlayerTest { 16 17 @Rule 18 public final StandardOutputStreamLog log = new StandardOutputStreamLog(); 19 20 @Autowired 21 private MediaPlayer player; //默认id会是“player”??? 22 23 @Autowired 24 private CompactDisc cd; 25 26 @Test 27 public void cdShouldNotBeNull() { 28 assertNotNull(cd); 29 } 30 31 @Test 32 public void play() { 33 player.play(); 34 assertEquals( 35 "Playing Sgt. Pepper's Lonely Hearts Club Band by The Beatles", 36 log.getLog()); 37 } 38 39 }
bean
转载于:https://www.cnblogs.com/shamgod/p/5231218.html
SPRING IN ACTION 第4版笔记-第二章-001-用@Autowired\@ComponentScan、@Configuration、@Component实现自动装载bean...相关推荐
- SPRING IN ACTION 第4版笔记-第二章-002-@ComponentScan、@Autowired的用法
一.@ComponentScan 1. @Configuration //说明此类是配置文件 @ComponentScan //开启扫描,会扫描当前类的包及其子包 public class CDPla ...
- SPRING IN ACTION 第4版笔记-第二章-004-Bean是否单例
spring的bean默认是单例,加载容器是会被化,spring会拦截其他再次请求bean的操作,返回spring已经创建好的bean. It appears that the CompactDisc ...
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-008-SpEL介绍
一. 1.SpEL expressions are framed with #{ ... } 2.SpEl的作用 Sp EL has a lot of tricks up its sleeves, ...
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-003-@Conditional根据条件生成bean及处理profile...
一.用@Conditional根据条件决定是否要注入bean 1. package com.habuma.restfun;public class MagicBean {} 2. package co ...
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-008-带参数的ADVICE
一. 假设有情形如:cd里有很多轨,当播放音乐时,要统计每个音轨的播放次数,这些统计操作不应放在播放方法里,因为统计不是播放音乐的主要职责,这种情况适合应用AOP. 二. 1. package sou ...
- SPRING IN ACTION 第4版笔记-第四章Aspect-oriented Spring-001-什么是AOP
一. Aspect就是把会在应用中的不同地方重复出现的非业务功能的模块化,比如日志.事务.安全.缓存 In software development, functions that span mult ...
- 机器人导论(第四版)学习笔记——第二章
机器人学导论(第四版)学习笔记--第二章 2. 空间描述和变换 2.1 引言 2.2 描述:位置.姿态与位姿 2.3 映射:从一个坐标系到另一个坐标系的变换 2.4 算子:平行,旋转和变换 2.5 总 ...
- 考研408 笔记 计算机网络【谢希仁第七版】第二章【物理层】几种复用方式 信道复用技术,频分复用FDM,时分复用TDM,波分复用WDM,码分复用CDM
2.1物理层基本概念 目的:启动.维护和关闭数据链路实体之间进行比特传输的物理连接. 一些特性: 机械特性:指明接口所用接线器的形状和尺寸.引线数目和排列.固定和锁定装置等等. 电气特性:指明在接口电 ...
- 王道考研2019版计算机网络第二章--物理层
语雀笔记链接: 王道考研2019版计算机网络第二章--物理层 (yuque.com)https://www.yuque.com/xiaojinchunchun/bxuuke/guce8z#EjOI8 ...
最新文章
- c语言中的extern_7.6 C语言内部函数和外部函数
- 创建细分客户的无监督学习项目
- 【Hibernate】dao层 +getHibernateTemplate()方法解析
- [CQOI2018] 解锁屏幕(状压dp)
- 从iOS的图片圆角想到渲染
- pe卸载win10更新补丁_新图标+新功能!win10凌晨更新补丁
- c语言小球触地问题,OC语言中关于触摸事件和手势
- ant design 上传+自定义上传
- 【Linux实验】Linux操作基础
- 计算机英语六级时间,计算机一级考试_6月英语六级报名时间
- Vue前端编译问题集
- 功能自动化测试的策略有哪些?
- Grafana 系列文章(一):基于 Grafana 的全栈可观察性 Demo
- 阿里云首发CIPU处理器,这次要抢CPU的C位,为OS反向自研
- cs231n 2018系列笔记(lecture7)
- 1w存银行一年多少利息_银行存款100万,一年后可以拿到多少钱?
- 用格里高利公式求π的近似值
- 数字IC手撕代码-乐鑫科技笔试真题(4倍频)
- 【HTML】HTML网页设计----动漫网站设计
- 企业ERP系统上线的最后一道防线——ERP系统上线预评估审计
热门文章
- GANs最新综述论文: 生成式对抗网络及其变种如何有用【附pdf下载】
- C 语言取整的几种方法6,C语言有以下几种取整方法:
- 理解SSD多盒-实时目标检测
- 弄潮儿数据_SINX 信息数据的“弄潮儿”
- windows镜像_什么是windows镜像?什么是Ghost?它们有什么优缺点?
- linux 脚本在哪里编写,Linux 脚本编写基础(一)
- linux 命令tf,linux——新手提问(关于文件内容替换)
- php查询记录是否存在,php – 如果记录存在,我可以更新记录,如果不存在,可以在单个查询中更新多行吗?...
- 基于javaweb的黑马旅游网站来源_喜讯丨创业黑马(重庆)科技孵化中心今日开业!助力重庆高新区打造人工智能创新高地...
- Java基础---标志符、变量和数据类型