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

  

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

  

        & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt;豆类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”比;   & lt; !——下面配置驱动弹簧调用BeingFactory的静态getBeing()方法来创建Bean   该bean元素包含的constructor-arg元素用于为静态工厂方法指定参数,   因此这段配置会驱动春天以反射方式来执行如下代码:   狗=org.crazyit.app.factory.BeingFactory.getBeing(“狗”);——比;   & lt; bean id=肮贰崩?皁rg.crazyit.app.factory.BeingFactory”   工厂方法=癵etBeing”比;   & lt; !——配置静态工厂方法的参数——比;   & lt; constructor-arg值=" https://www.yisu.com/zixun/dog "/比;   & lt; !——驱动春天以“我是狗”为参数来执行狗的setMsg()方法——比;   & lt;属性名=拔毒奔壑?" https://www.yisu.com/zixun/我是狗”/比;   & lt;/bean>   & lt; !——下面配置会驱动春天以反射方式来执行如下代码:   狗=org.crazyit.app.factory.BeingFactory.getBeing(“猫”);——比;   & lt; bean id=懊ā崩?皁rg.crazyit.app.factory.BeingFactory”   工厂方法=癵etBeing”比;   & lt; !——配置静态工厂方法的参数——比;   & lt; constructor-arg值=" https://www.yisu.com/zixun/cat "/比;   & lt; !——驱动春天以“我是猫”为参数来执行狗的setMsg()方法——比;   & lt;属性名=拔毒奔壑?" https://www.yisu.com/zixun/我是猫”/比;   & lt;/bean>   & lt;/beans>      之前      

        包org.crazyit.app.service;   公共接口   {   公共空间testBeing ();   }      之前      

  

1只猫         包org.crazyit.app.service.impl;   进口org.crazyit.app.service。*;   公共类猫实现   {   私人字符串味精;//味精的setter方法   公共空间setMsg(字符串味精)   {   这一点。味精=味精;   }//实现接口必须实现的testBeing方法   公共空间testBeing ()   {   system . out。println(味精+   ”,猫喜欢吃老鼠”);   }   }      之前      

2只狗         包org.crazyit.app.service.impl;   进口org.crazyit.app.service。*;   公共类狗实现   {   私人字符串味精;//味精的setter方法   公共空间setMsg(字符串味精)   {   这一点。味精=味精;   }//实现接口必须实现的testBeing()方法   公共空间testBeing ()   {   system . out。println(味精+   ”,狗爱啃骨头”);   }   }      之前      

        包org.crazyit.app.factory;   进口org.crazyit.app.service.impl。*;   进口org.crazyit.app.service。*;   公开课BeingFactory   {//返回被实例的静态工厂方法//参数参数决定返回哪个被类的实例   公共静态getBeing(字符串参数)   {//调用此静态方法的参数为狗,则返回狗实例   如果(arg.equalsIgnoreCase(“狗”))   {   返回新狗();   }//否则返回猫实例   其他的   {   返回新猫();   }   }   }      之前      

        李包;   进口org.springframework.context。*;   进口org.springframework.context.support。*;   进口org.crazyit.app.service。*;   公开课SpringTest   {   公共静态void main (String [] args)   {//以类加载路径下的配置文件创建ClassPathResource实例   ApplicationContext ctx=new   ClassPathXmlApplicationContext(“它指明”);   在b1=ctx。getBean(“狗”,Being.class);   b1.testBeing ();   b2=ctx。getBean(“猫”,Being.class);   b2.testBeing ();   }   }      之前      

  
  

我是狗,狗爱啃骨头
  我是猫,猫喜欢吃老鼠

     

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

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