以上文章介绍的方法或方式,都是注入基本数据类型例如String,int等等,本例将介绍自定义对象的注入方式的配置。
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
操作步骤:
1、 创建Topic对象。
public class Topic {
/**内容*/
private String context;
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
public Topic(String context) {
this.context = context;
}
}
2、 创建Speaker对象。
public class Speaker {
private Topic topic;
public Topic getTopic() {
return topic;
}
public void setTopic(Topic topic) {
this.topic = topic;
}
/**
* 演讲
*/
public void speech() {
System.out.println("[Speaker's Topic Context is ]"+topic.getContext()+".");
}
}
3、 创建Spring配置文件middleLearn01.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"> <!-- Learn middle 01 使用内部bean,但该bean不能被其他bean使用 <bean id="speaker05" class="com.mahaochen.spring.middle.learn05.Speaker" scope="singleton"> <property name="topic"> <bean class="com.mahaochen.spring.middle.learn05.Topic"> <constructor-arg index="0" value="Tour and Recollection" /> </bean> </property> </bean> --> <!-- OR Learn middel 02 --> <bean id="middleSpeaker01" class="com.mahaochen.spring.middle.learn01.Speaker" scope="singleton"> <property name="topic" ref="topic"/> </bean> <bean id="topic" class="com.mahaochen.spring.middle.learn01.Topic"> <constructor-arg index="0" value="Tour and Recollection" /> </bean> </beans>
4、将Spring配置文件middleLearn01.xml引入到主配置文件beans.xml中。
<import resource="com/mahaochen/spring/middle/learn01/middleLearn01.xml"/>
5、编写测试类TestSpringMiddle01.java。
public class TestSpringMiddle01 {
public static void main(String[] args) {
BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
Speaker speaker05 = beanFactory.getBean("middleSpeaker01", Speaker.class);
speaker05.speech();
}
}
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
原文:http://blog.csdn.net/mahoking/article/details/42219057