一 配置
<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<!-- 指定使用byName策略,Spring会根据setter方法的方法名与Bean的id进行匹配 -->
<bean id="chinese" class="org.crazyit.app.service.impl.Chinese"
autowire="byName"/>
<bean id="gunDog" class="org.crazyit.app.service.impl.GunDog">
<property name="name" value="wangwang"/>
</bean>
</beans>
二 接口
Dog
package org.crazyit.app.service;
public interface Dog
{
public String run();
}
Person
package org.crazyit.app.service;
public interface Person
{
public void test();
}
三 实现类
Chinese
package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class Chinese implements Person
{
private Dog dog;
// dog的setter方法
public void setGunDog(Dog dog)
{
this.dog = dog;
}
public Dog getDog()
{
return this.dog;
}
public void test()
{
System.out.println("我是一个普通人,养了一条狗:"
+ getDog().run());
}
}
Gundog
package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class GunDog implements Dog
{
private String name;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public String run()
{
return "我是一只叫" + getName()
+ "的猎犬,奔跑迅速..." ;
}
}
四 测试类
package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class SpringTest
{
public static void main(String[] args)
{
// 以类加载路径下的beans.xml作为配置文件,创建Spring容器
ApplicationContext ctx = new
ClassPathXmlApplicationContext("beans.xml");
Person p = ctx.getBean("chinese" , Person.class);
p.test();
}
}
五 测试结果
我是一个普通人,养了一条狗:我是一只叫wangwang的猎犬,奔跑迅速...