- ?:首先导入spring开发相关的jar包,所需jar包可以参考下面的博客
https://www.cnblogs.com/mibloom/p/9871652.html
我这里用的maven,所以是添加相关的依赖。 - 编写两个类,一个是稿子类,一个是演讲人类,演讲人要演讲稿子,需要调用稿子类的方法,这种依赖关系交由spring容器注入。首先演示属性注入,属性注入指通过setXxx()方法注入Bean的属性值或依赖对象
①稿子实体类
/*
稿子实体类
*/
public class Manuscript {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public void write() {
System.out.println("今天, " + message);
}
}
②演讲人实体类
/*
演讲人实体类
*/
public class President {
private String message;
private Manuscript manuscript;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Manuscript getManuscript() {
return manuscript;
}
public void setManuscript(Manuscript manuscript) {
this.manuscript = manuscript;
}
public void speech() {
System.out.println("大家好");
manuscript.write();
}
}
③配置applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx" default-autowire="byName">
<bean id="manu" class="spring.springDemo.Manuscript">
<property name="message">
<value>是个好日子</value>
</property>
</bean>
<bean id="pre" class="spring.springDemo.President">
<property name="message">
<value>大家好</value>
</property>
<property name="manuscript" ref="manu"/>
</bean>
</beans>
④在需要使用的时候才由第三方注入依赖关系,避免模块间的耦合
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class springDemoTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
President p = (President)applicationContext.getBean("pre");
p.speech();
}
}
测试结果
,为什么说避免耦合呢?这里你就可以根据自己喜欢,在applicationContext.xml文件中改变演讲人的演讲内容,就不需要动源代码
<bean id="manu1" class="spring.springDemo.Manuscript">
<property name="message">
<value>在座的各位都是垃圾</value>
</property>
</bean>
<bean id="pre" class="spring.springDemo.President">
<property name="message">
<value>大家好</value>
</property>
<property name="manuscript" ref="manu1"/>
</bean>
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class springDemoTest {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
President p = (President)applicationContext.getBean("pre");
p.speech();
}
}