spring学习(42):属性注入注入数组和列表的说明
目录结构
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):属性注入注入数组和列表的说明相关推荐
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- spring学习笔记四(注入Bean属性)
注入Bean属性 初始化bean的时候我们可能要对生成的Bean对象进行一些初始属性的设置,那么在spring中是如何设置的呢? 我们以下面图中实例来为Bean注入属性 一.通过构造方法来注入属性 ...
- Spring的Bean属性依赖注入
属性依赖注入的三种方式 什么是Bean属性的注入?就是对一个对象的属性赋值.有三种方式: 第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范需要符合JavaBean规范) ...
- spring学习-xml属性注入-数组--list--map--set类型
xml设置 普通属性时(不为对象) <!--创建学生对像--><bean id="student" class="Students">& ...
- spring学习(40):注入数组类型
目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...
- Spring学习4之依赖注入(DI)
前言 上节学习了IOC创建对象的方式,我们在不知不觉中使用了最简单的构造注入,什么是构造注入,什么又是依赖注入呢? 一.首先我们要了解DI是什么? 创建对象的过程中Spring可以依据配置对象的属性进 ...
- Spring学习资料之 依赖注入(二)
1.2 属性注入(Field Inject) 1.2.1 基本属性注入 首先来看一个例子.Service.java 1 @ImplementedBy(ServiceImpl.class) 2 publ ...
- Spring注解开发-属性依赖注入
1.简单的属性注入.无需增加get/set方法 注意:@Value @Autowired它们可以修饰属性,也可以修饰setter方法,如果写在属性上,就不需要提供setter方法. 2.复杂的属性注入 ...
- Spring注解开发-属性依赖注入指定名称的bean
1.@Autowired它默认是根据类型进行注入.多个IUserDao会报错. 如果与@Qualifier一起使用,就可以根据名称来进行注入. 2.也可以使用下面的方式来根据名称进行属性注入:
- spring学习(39):注入map类型
目录结构 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&quo ...
最新文章
- supervisor源码分析
- 马斯克笑了!元宇宙是个啥?反正我不信!
- Linux学习路线指南
- 使用Altera综合工具Quartus II下载到FPGA时无法识别USB-Blaster问题
- Time(sdutoj2272)_JAVA
- 乱入Linux界的我是如何学习的
- 设计模式java装饰模式范例_Java设计模式之装饰模式详解
- 小结三种控制路由发布的方法
- 我的8年经验之谈:35岁的功能测试就没有未来了?自己也能拯救自己!
- 光纤传感器实验模块_实验3振动测量试验模块.doc
- 日访问量1万mysql_日访问量1万服务器
- iOS $99 刀 开发者证书的申请步骤
- illustrator插件开发指南pdf_Jenkins之pipeline开发工具
- Servlet(2) 三个域对象
- Pareidolia — AI的艺术教学
- 集成iSCSI和FC存储的五种方法
- C++中的RVO、NRVO与Copy Elision
- 利用border-radius制作圆形、圆角矩形、半圆
- 12分钟入门python基础-计算机视觉方向
- Muli3D 1 下载与编译
热门文章
- DOM--5 动态修改样式和层叠样式表
- 毕业论文计算机附录模板,毕业论文格式是什么,附录又是什么?
- mysql 绕过select报错_MySQL注射绕过技巧(三)
- python内置支持集合运算吗_Python中的集合支持交、并运算
- java 栈空间_初学JAVA——栈空间堆空间的理解
- vue 转为静态html,Vue CLI 3使用:HTML和静态资源(五)
- OpenCV修养(二)——OpenCV基本操作
- Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析
- Linux 下的DMA浅析
- 如何在oracle中查询所有用户表的表名、主键名称、索引、外键等