Spring实战之使用静态工厂方法创建Bean操作示例

这篇文章主要介绍了Spring实战之使用静态工厂方法创建Bean操作,结合实例形式分析了静态工厂方法创建Bean的相关实现步骤与操作注意事项,需要的朋友可以参考下

本文实例讲述了Spring实战之使用静态工厂方法创建Bean操作。分享给大家供大家参考,具体如下:

一 配置

二 接口

package org.crazyit.app.service; public interface Being { public void testBeing(); }

三 实现类

1 Cat

package org.crazyit.app.service.impl; import org.crazyit.app.service.*; public class Cat implements Being { private String msg; // msg的setter方法 public void setMsg(String msg) { this.msg = msg; } // 实现接口必须实现的testBeing方法 public void testBeing() { System.out.println(msg + ",猫喜欢吃老鼠"); } }

2 Dog

package org.crazyit.app.service.impl; import org.crazyit.app.service.*; public class Dog implements Being { private String msg; // msg的setter方法 public void setMsg(String msg) { this.msg = msg; } // 实现接口必须实现的testBeing()方法 public void testBeing() { System.out.println(msg + ",狗爱啃骨头"); } }

四 工厂类

package org.crazyit.app.factory; import org.crazyit.app.service.impl.*; import org.crazyit.app.service.*; public class BeingFactory { // 返回Being实例的静态工厂方法 // arg参数决定返回哪个Being类的实例 public static Being getBeing(String arg) { // 调用此静态方法的参数为dog,则返回Dog实例 if (arg.equalsIgnoreCase("dog")) { return new Dog(); } // 否则返回Cat实例 else { return new Cat(); } } }

五 测试类

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) { // 以类加载路径下的配置文件创建ClassPathResource实例 ApplicationContext ctx = new ClasspathXmlApplicationContext("beans.xml"); Being b1 = ctx.getBean("dog" , Being.class); b1.testBeing(); Being b2 = ctx.getBean("cat" , Being.class); b2.testBeing(); } }

六 测试结果

我是狗,狗爱啃骨头

我是猫,猫喜欢吃老鼠

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...