首先,请看一下项目的结构图
加群一起探讨java,QQ群号:591193911
思想是:随意切换让老板能够用中国移动,中国联通,中国电信,腾讯微信发送信息这么一个事件

- 打开eclipse,new一个动态web项目,版本选2.5,自动生成web.xml
- 导入jar包到lib文件夹中,然后Build Path,将包引入一下
- 按照结构图建立相关的xml配置文件和java各类以及接口
写代码文件的步骤:
1)message.java //先写接口类
package com.spring.port;
public interface message {
public void send();
}
2)写beans中的4个类1.中国移动类
1.中国移动类
package com.spring.beans;
import com.spring.port.message;
public class chinaMobile implements message{
public void send() {
// TODO Auto-generated method stub
System.out.println("Being Used China Mobile send message......");
}
}
2.中国联通类
package com.spring.beans;
import com.spring.port.message;
public class chinaUnicom implements message{
public void send() {
// TODO Auto-generated method stub
System.out.println("Being Used China Unicom Send Message......");
}
}
3.中国电信类
package com.spring.beans;
import com.spring.port.message;
public class chinaTelecom implements message{
public void send() {
// TODO Auto-generated method stub
System.out.println("Being Used China Telecom Send Message......");
}
}
4.腾讯微信类
package com.spring.beans;
import com.spring.port.message;
public class tencentWeChat implements message{
public void send() {
// TODO Auto-generated method stub
System.out.println("Being Used Tencent WeChat Send Message......");
}
}
3)写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"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="phone" class="com.spring.beans.tencentWeChat">
</bean>
</beans>
- 注意事项:id的名字可以自定义,但是一定要记住,等下测试类里面还会用的着
- class的路径是中国移动,联通,电信,微信这4个类的其中一个路径,学了servlet的应该都知道了
- 代码中的是腾讯微信的类
4)phone.java
package com.spring.phone;
import com.spring.port.message;
public class phone {
private message message;
public message getMessage() {
return message;
}
public void setMessage(message message) {
this.message = message;
}
public void start() {
System.out.print("Boss ");
message.send();
}
}
- 首先将结果message给私有化,只需set就可以了
- phone里面写一个start()方法,自我输出一个Boss,然后调用接口的send()方法
5)最后,测试类。testSpringIoc.java
package com.spring.test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.spring.phone.phone;
import com.spring.port.message;
public class testSpringIoc {
private static BeanFactory beanFactory;
public static void main(String[] args) {
phone phone=new phone();
beanFactory=new ClassPathXmlApplicationContext("resource/applicationContext.xml");
message message=(message) beanFactory.getBean("phone");
phone.setMessage(message);
phone.start();
}
}
- 注意:getBean();方法里面的phone就是配置文件里面的phone。
- 如果你applicationContext.xml直接写在src目录下面就不要写resource,这个路径看自己写的了
- setMessage()里面的message就是将配置文件的信息获取然后set给phone类实现输入,这样调用start()方法了
总结:
上述代码成功运行后输入结果是:Boss Being Used Tencent WeChat Send Message......
现在你可以尝试去复制其他3个类的路径 可以点击类名,鼠标右击,选择Copy Qualified Name,然后去配置文件删除class后面的路径,键盘按ctrl+v复制,点击保存。然后在测试类运行,就是你选择的那个类的输入信息。
这样是不是很方便,源代码不用改动,只改变配置文件就可以了。
祝你成功。