目录结构

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"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"><property name="title" value="告白气球"/><property name="duration" value="215"/></bean><bean id="music2" class="com.geyao.demo.soundSystem.Music"><property name="title" value="爱情废材"/><property name="duration" value="215"/></bean><bean id="compactDisc2" class="com.geyao.demo.soundSystem.CompactDisc"><property name="title" value="爱情废材"/><property name="artist" value="周杰伦"/><property name="tracks" ><array><!--<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"/> --><ref bean="music1"/><ref bean="music2"/></array></property></bean></beans>

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.Map;
import java.util.Set;public class CompactDisc {private String title;private String artist;private 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, Music[] tracks) {this.title = title;this.artist = artist;this.tracks = tracks;System.out.println("s三个方法的构造函数");}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;System.out.println("一再"+this.toString()+"中注入title");}public String getArtist() {return artist;}public void setArtist(String artist) {this.artist = artist;System.out.println("一再"+this.toString()+"中注入artist");}public Music[] getTracks() {return tracks;}public void setTracks(Music[] tracks) {this.tracks = tracks;System.out.println("一再"+this.toString()+"中注入tracks");}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());}//for(String key:this.tracks.keySet()){//   System.out.println("key:"+key);//  Music music=this.tracks.get(key);//   System.out.println("音乐"+music.getTitle()+"时长"+music.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;System.out.println("一再"+this.toString()+"中注入title");}public Integer getDuration() {return duration;}public void setDuration(Integer duration) {this.duration = duration;System.out.println("一再"+this.toString()+"中注入duration");}public Music() {super();System.out.println("Music的狗只函数。。。"+this.toString());}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();}}

Apptest类

package com.geyao.demo.souundSystem;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class AppTestSX {@Testpublic void test(){}
}

运行结果

Music的狗只函数。。。com.geyao.demo.soundSystem.Music@a530d0a
一再com.geyao.demo.soundSystem.Music@a530d0a中注入title
一再com.geyao.demo.soundSystem.Music@a530d0a中注入duration
Music的狗只函数。。。com.geyao.demo.soundSystem.Music@1b11171f
一再com.geyao.demo.soundSystem.Music@1b11171f中注入title
一再com.geyao.demo.soundSystem.Music@1b11171f中注入duration
compactdisc构造函数
一再com.geyao.demo.soundSystem.CompactDisc@29215f06中注入title
一再com.geyao.demo.soundSystem.CompactDisc@29215f06中注入artist
一再com.geyao.demo.soundSystem.CompactDisc@29215f06中注入tracks

spring学习(42):属性注入注入数组和列表的说明相关推荐

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

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

  2. spring学习笔记四(注入Bean属性)

      注入Bean属性 初始化bean的时候我们可能要对生成的Bean对象进行一些初始属性的设置,那么在spring中是如何设置的呢? 我们以下面图中实例来为Bean注入属性 一.通过构造方法来注入属性 ...

  3. Spring的Bean属性依赖注入

    属性依赖注入的三种方式 什么是Bean属性的注入?就是对一个对象的属性赋值.有三种方式: 第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范需要符合JavaBean规范) ...

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

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

  5. spring学习(40):注入数组类型

    目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

  6. Spring学习4之依赖注入(DI)

    前言 上节学习了IOC创建对象的方式,我们在不知不觉中使用了最简单的构造注入,什么是构造注入,什么又是依赖注入呢? 一.首先我们要了解DI是什么? 创建对象的过程中Spring可以依据配置对象的属性进 ...

  7. Spring学习资料之 依赖注入(二)

    1.2 属性注入(Field Inject) 1.2.1 基本属性注入 首先来看一个例子.Service.java 1 @ImplementedBy(ServiceImpl.class) 2 publ ...

  8. Spring注解开发-属性依赖注入

    1.简单的属性注入.无需增加get/set方法 注意:@Value @Autowired它们可以修饰属性,也可以修饰setter方法,如果写在属性上,就不需要提供setter方法. 2.复杂的属性注入 ...

  9. Spring注解开发-属性依赖注入指定名称的bean

    1.@Autowired它默认是根据类型进行注入.多个IUserDao会报错. 如果与@Qualifier一起使用,就可以根据名称来进行注入. 2.也可以使用下面的方式来根据名称进行属性注入:

  10. spring学习(39):注入map类型

    目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...

最新文章

  1. supervisor源码分析
  2. 马斯克笑了!元宇宙是个啥?反正我不信!
  3. Linux学习路线指南
  4. 使用Altera综合工具Quartus II下载到FPGA时无法识别USB-Blaster问题
  5. Time(sdutoj2272)_JAVA
  6. 乱入Linux界的我是如何学习的
  7. 设计模式java装饰模式范例_Java设计模式之装饰模式详解
  8. 小结三种控制路由发布的方法
  9. 我的8年经验之谈:35岁的功能测试就没有未来了?自己也能拯救自己!
  10. 光纤传感器实验模块_实验3振动测量试验模块.doc
  11. 日访问量1万mysql_日访问量1万服务器
  12. iOS $99 刀 开发者证书的申请步骤
  13. illustrator插件开发指南pdf_Jenkins之pipeline开发工具
  14. Servlet(2) 三个域对象
  15. Pareidolia — AI的艺术教学
  16. 集成iSCSI和FC存储的五种方法
  17. C++中的RVO、NRVO与Copy Elision
  18. 利用border-radius制作圆形、圆角矩形、半圆
  19. 12分钟入门python基础-计算机视觉方向
  20. Muli3D 1 下载与编译

热门文章

  1. DOM--5 动态修改样式和层叠样式表
  2. 毕业论文计算机附录模板,毕业论文格式是什么,附录又是什么?
  3. mysql 绕过select报错_MySQL注射绕过技巧(三)
  4. python内置支持集合运算吗_Python中的集合支持交、并运算
  5. java 栈空间_初学JAVA——栈空间堆空间的理解
  6. vue 转为静态html,Vue CLI 3使用:HTML和静态资源(五)
  7. OpenCV修养(二)——OpenCV基本操作
  8. Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析
  9. Linux 下的DMA浅析
  10. 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等