重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Spring中怎么利用静态工厂方法创建Bean,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联制作网站网页找三站合一网站制作公司,专注于网页设计,网站设计制作、成都网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为近1000家服务,创新互联网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!一 配置
二 接口
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(); }}
六 测试结果
我是狗,狗爱啃骨头我是猫,猫喜欢吃老鼠
看完上述内容,你们掌握Spring中怎么利用静态工厂方法创建Bean的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!