目录结构

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.geyao</groupId><artifactId>spring01geyao</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.13.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>3.2.0.RELEASE</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.4.RELEASE</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.4.RELEASE</version><scope>test</scope></dependency></dependencies>
</project>

applictioncontext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--bean元素:描述当前的对象需要由spring容器管理id属性:标识对象 未来在应用程序中可以根据id获取对象class对象:被管理的对象的全名--><bean id="music1" class="com.geyao.demo.soundSystem.Music"><constructor-arg value="i do 1"/><constructor-arg value="270"/></bean><bean id="music2" class="com.geyao.demo.soundSystem.Music"><constructor-arg value="i do 2"/><constructor-arg value="270"/></bean><bean id="music3" class="com.geyao.demo.soundSystem.Music"><constructor-arg value="i do 3"/><constructor-arg value="270"/></bean>
<bean id="compactDisc1"  class="com.geyao.demo.soundSystem.CompactDisc"><constructor-arg name="title" value="I Do"/><constructor-arg name="artist" value="莫文蔚"/><constructor-arg name="tracks"><map><!--<value>i do 1</value><value>i do 2</value><value>i do 3</value><ref bean="music1"/><ref bean="music2"/><ref bean="music3"/><ref bean="music3"/>--><entry key="m1" value-ref="music1"/><entry key="m2" value-ref="music2"/><entry key="m3" value-ref="music3"/></map></constructor-arg>
</bean>
</beans><!-- <bean name="compactDisc2" class="com.geyao.demo.soundSystem.CompactDisc"></bean><bean name="cdPlayer1" class="com.geyao.demo.soundSystem.CDPlayer"><constructor-arg ref="compactDisc1"/></bean><bean name="cdPlayer2" class="com.geyao.demo.soundSystem.CDPlayer" c:cd-ref="compactDisc2"></bean>-->

log4j.properties

### 设置###
log4j.rootLogger = ERROR,stdout### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.category.org.springframework.beans.factory=ERROR

CompactDisc类

package com.geyao.demo.soundSystem;import java.util.List;
import java.util.Set;public class CompactDisc {private String title;private String artist;private Set<Music> tracks;public CompactDisc() {super();System.out.println("compactdisc构造函数");}public CompactDisc(String title,String artist){this.title =title;this.artist=artist;System.out.println("compactDisc的有残构造函数"+this.toString());}public CompactDisc(String title, String artist, Set<Music> tracks) {this.title = title;this.artist = artist;this.tracks = tracks;System.out.println("s三个方法的构造函数");}public void play(){System.out.println("播放cd音乐"+this.toString()+""+this.title+""+this.artist);for(Music track:this.tracks){System.out.println("音乐"+track.getTitle()+"时长"+track.getDuration());}}
}

Music类

package com.geyao.demo.soundSystem;public class Music {private String title;private Integer duration;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Integer getDuration() {return duration;}public void setDuration(Integer duration) {this.duration = duration;}public Music() {super();}public Music(String title, Integer duration) {this.title = title;this.duration = duration;}
}

cdplayer类

package com.geyao.demo.soundSystem;public class CDPlayer {private CompactDisc cd;public CDPlayer() {super();System.out.println("cdplayer的构造方法"+this.toString());}public CDPlayer(CompactDisc cd){this.cd=cd;System.out.println("cdplayer的有残构造方法");}public void play(){cd.play();}
}

ApplicationSpring类

import com.geyao.demo.soundSystem.CompactDisc;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class ApplicationSpring {public static void main(String[] args){System.out.println("Application ");ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");CompactDisc cd1=(CompactDisc) context.getBean("compactDisc1");CompactDisc cd2=(CompactDisc) context.getBean("compactDisc2");cd1.play();cd2.play();}
}

appTest类

package com.geyao.demo.souundSystem;import com.geyao.demo.soundSystem.CompactDisc;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class AppTest {@Autowiredprivate CompactDisc compactDisc1;//@Autowired//private CompactDisc compactDisc12;//@Autowired//@Qualifier("compacDisc2")// private CompactDisc compactDisc3;@Testpublic void testApp(){compactDisc1.play();// compactDisc12.play();// compactDisc3.play();}}

CDplayerTest

package com.geyao.demo.souundSystem;import com.geyao.demo.soundSystem.CDPlayer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class CDplayerTest {@Autowiredprivate CDPlayer cdPlayer1;@Autowiredprivate CDPlayer cdPlayer2;@Testpublic void test01(){cdPlayer1.play();}@Testpublic void test02(){cdPlayer1.play();}}

运行结果

s三个方法的构造函数
播放cd音乐com.geyao.demo.soundSystem.CompactDisc@7ce69770I Do莫文蔚
key:m1
音乐i do 1时长270
key:m2
音乐i do 2时长270
key:m3
音乐i do 3时长270

spring学习(39):注入map类型相关推荐

  1. Spring配置文件中注入复杂类型属性

    Spring在整合其他框架时在配置文件中可能会涉及到复杂类型属性的注入,以下举例说明: 1.数组类型 2.List集合类型 3.Set集合类型 4.Map集合类型 5.Properties属性类型 直 ...

  2. Spring学习笔记-注入实战篇

    spring对各种数据类型都提供了注入支持,像java基本类型,对象,集合等,这篇文章以代码实践为主,代码注释中会解释注入的细节 测试类中包含了我们编程中最常见的数据结构 package com.cr ...

  3. spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序...

    spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明:ModelAnd ...

  4. Spring学习记录

    Spring相关 目录 文章目录 Spring相关 目录 前言 工厂设计模式 静态工厂模式 通用工厂模式 ApplicationContext ClassPathXmlApplicationConte ...

  5. spring项目属性注入和bean管理xml 注入一般属性和集合属性

    IOC 介绍: 在Spring的应用中,Spring IoC容器可以创建.装配和配置应用组件对象,这里的组件对象称为Bean. Bean的实例化 在面向对象编程中,想使用某个对象时,需要事先实例化该对 ...

  6. spring学习-xml属性注入-数组--list--map--set类型

    xml设置 普通属性时(不为对象) <!--创建学生对像--><bean id="student" class="Students">& ...

  7. Spring.NET学习笔记8——集合类型的注入(基础篇) Level 200

    Spring.NET还支持集合类型的注入.而且使用起来也比较方便. 一.ILIst类型 使用<list>元素作为ILIst的标签,value为集合中元素的值.也可以注入对象,甚至关联其它对 ...

  8. spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)

    spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...

  9. Spring问题研究之bean的属性xml注入List类型不匹配

    一.问题描述 今天在Java群里看到"白日梦想家" 的一个提问,很有意思: 为什么 String类型的列表 通过spring的属性注入 可以注入Integer类型的元素呢? 二.问 ...

最新文章

  1. 他们提出了一个大胆的猜想:GWT(深度学习)→通用人工智能
  2. Windows下使用xShell向远程Linux上传文件
  3. div的contentEnable属性
  4. 转大学毕业后拉开差距的原因
  5. uaa 授权_使用UAA OAuth2授权服务器–客户端和资源
  6. 课时76.兄弟选择器(掌握)
  7. .Net 中的反射(查看基本类型信息) - Part.2
  8. Federated learning论文修改2021-11-14(X-Y Liang)
  9. CNN for Sentence Classification-textcnn阅读笔记
  10. JavaScript 的学习路线
  11. 微信小程序图片转换成文字_怎么利用微信小程序把图片上的文字转到word文本中?...
  12. 一个安卓锁机病毒的分析报告
  13. LOJ10068 秘密的牛奶运输
  14. mysql grou平by_mysql 中group by怎么样加聚合函数
  15. cocos creator 背包bag制作
  16. WordPress一款简约轻快且强大的MDx主题
  17. 【AppStore排行榜游戏安利】目录
  18. 如何将大量图片文件合并成一个*.bin文件
  19. CPU怎么选择,单核cpu与多核cpu的区别
  20. 论文笔记-对话系统综述

热门文章

  1. CRM系统助家具企业华丽转身
  2. java:自定义数据库连接池
  3. nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法
  4. mysql 多数据源访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码
  5. springboot md5加密_实在!基于Springboot和WebScoket,写了一个在线聊天小程序
  6. Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
  7. 安卓USB开发教程 三 USB Accessory
  8. Taro+react开发(95):问答模块02
  9. Taro+react开发(91):chidren和组合
  10. Taro+react开发(45)taro中组件生命周期