当前位置: 首页 > news >正文

宁波拳头信息科技有限公司西安seo技术培训班

宁波拳头信息科技有限公司,西安seo技术培训班,wordpress微商,京口区建设局网站😀前言 本章是spring基于XML 配置bean系类中第4篇讲解spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象 🏠个人主页:尘觉主页 🧑个人简介:大家好,我是尘觉,希望…

😀前言
本章是spring基于XML 配置bean系类中第4篇讲解spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

  • 💫spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象
    • 😊通过静态工厂获取对象
      • 🍀应用实例
        • 创建MyStaticFactory类
        • 修改 beans.xml
    • 😀通过实例工厂获取对象
      • 🍀应用实例
        • 创建MyInstanceFactory 类
        • 修改 beans.xml
    • 🥰通过 FactoryBean 获取对象
      • 🍀应用实例
        • 创建 MyFactoryBean
        • 配置beans.xml
    • 😄总结

在这里插入图片描述

💫spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象

😊通过静态工厂获取对象

在 spring 的 ioc 容器, 可以通过静态工厂获对象

重新在获取一个bean因为他们所指定的工厂是静态的只会执行一次 所以他们是同一个对象

    //通过静态工厂获取bean//Java基础-静态和非静态@Testpublic void getBeanByStaticFactory() {ApplicationContext ioc =new ClassPathXmlApplicationContext("beans.xml");Monster my_monster01 = ioc.getBean("my_monster01", Monster.class);Monster my_monster04 = ioc.getBean("my_monster04", Monster.class);System.out.println("my_monster01=" + my_monster01);System.out.println(my_monster01 == my_monster04);//true}

🍀应用实例

创建MyStaticFactory类

public class MyStaticFactory {private static Map<String, Monster> monsterMap;//使用 static代码块 进行初始化//在java基础的时候,讲过的static  {monsterMap = new HashMap<>();monsterMap.put("monster01", new Monster(100,"牛魔王","芭蕉扇"));monsterMap.put("monster02", new Monster(200,"狐狸精","美人计"));}//提供一个方法,返回Monster对象public static Monster getMonster(String key) {return monsterMap.get(key);}}

修改 beans.xml

<!--配置monster对象,通过静态工厂获取1. 通过静态工厂获取/配置bean2. class 是静态工厂类的全路径3. factory-method 表示是指定静态工厂类的哪个方法返回对象4. constructor-arg value="monster02" value是指定要返回静态工厂的哪个对象--><bean id="my_monster01"class="com.spring.factory.MyStaticFactory"factory-method="getMonster"><constructor-arg value="monster02"/></bean><bean id="my_monster04"class="com.spring.factory.MyStaticFactory"factory-method="getMonster"><constructor-arg value="monster02"/></bean>

😀通过实例工厂获取对象

在 spring 的 ioc 容器, 可以通过实例工厂获对象

重新在获取一个bean因为他们所指定的工厂是非静态的调用一次执行一次所以他们不是同一个对象

    //通过实例工厂获取bean@Testpublic void getBeanByInstanceFactory() {ApplicationContext ioc =new ClassPathXmlApplicationContext("beans.xml");Monster my_monster02 = ioc.getBean("my_monster02", Monster.class);Monster my_monster03 = ioc.getBean("my_monster03", Monster.class);System.out.println("my_monster02=" + my_monster02);System.out.println("my_monster03=" + my_monster03);System.out.println(my_monster02 == my_monster03);//false}

🍀应用实例

创建MyInstanceFactory 类

public class MyInstanceFactory {private Map<String, Monster> monster_map;//通过普通代码块进行初始化{monster_map = new HashMap<>();monster_map.put("monster03", new Monster(300, "牛魔王~", "芭蕉扇~"));monster_map.put("monster04", new Monster(400, "狐狸精~", "美人计~"));}//写一个方法返回Monster对象public Monster getMonster(String key) {return monster_map.get(key);}
}

修改 beans.xml

  1. factory-bean 指定使用哪个实例工厂对象返回bean

  2. factory-method 指定使用实例工厂对象的哪个方法返回bean

  3. constructor-arg value=“monster03” 指定获取到实例工厂中的哪个monster

<!--配置2个实例工厂对象--><bean class="com.spring.factory.MyInstanceFactory" id="myInstanceFactory"/><bean class="com.spring.factory.MyInstanceFactory" id="myInstanceFactory2"/><!--配置monster对象, 通过实例工厂解读1. factory-bean 指定使用哪个实例工厂对象返回bean2. factory-method 指定使用实例工厂对象的哪个方法返回bean3. constructor-arg value="monster03" 指定获取到实例工厂中的哪个monster--><bean id="my_monster02" factory-bean="myInstanceFactory" factory-method="getMonster"><constructor-arg value="monster03"/></bean><bean id="my_monster03" factory-bean="myInstanceFactory2" factory-method="getMonster"><constructor-arg value="monster03"/></bean>

🥰通过 FactoryBean 获取对象

在 spring 的 ioc 容器, 可以通过 FactoryBean 获取对象

    //通过FactoryBean获取bean@Testpublic void getBeanByFactoryBean() {ApplicationContext ioc =new ClassPathXmlApplicationContext("beans.xml");Monster my_monster05 = ioc.getBean("my_monster05", Monster.class);System.out.println("my_monster05=" + my_monster05);}

🍀应用实例

创建 MyFactoryBean

public class MyFactoryBean implements FactoryBean<Monster> {//这个就是你配置时候,指定要获取的对象对应keyprivate String key;private Map<String, Monster> monster_map;{   //代码块,完成初始化monster_map = new HashMap<>();monster_map.put("monster03", new Monster(300, "牛魔王~", "芭蕉扇~"));monster_map.put("monster04", new Monster(400, "狐狸精~", "美人计~"));}public void setKey(String key) {this.key = key;}@Overridepublic Monster getObject() throws Exception {return monster_map.get(key);}@Overridepublic Class<?> getObjectType() {//得到类型return Monster.class;}@Overridepublic boolean isSingleton() {//这里指定是否返是单例return false;}
}

配置beans.xml

  <!--配置monster对象,通过FactoryBean获取解读1. class 指定使用的FactoryBean2. key表示就是 MyFactoryBean 属性key3. value就是你要获取的对象对应key--><bean id="my_monster05" class="com.spring.factory.MyFactoryBean"><property name="key" value="monster04"/></bean>

😄总结

本篇消详细的讲解了spring中怎么通过静态工厂和动态工厂获取对象以及他们的区别
以及怎么通过 FactoryBean 获取对象

spring基于XML 配置bean系类
第一篇–>怎么通过类型来获取 bean以及为什么可以通过构造器配置 bean

第二篇–> 怎么通过通过 p 名称空间配置 bean以及怎么去引用/注入其它 bean 对象–ref和怎么去引用/注入内部 bean 对象

第三篇–> spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值

😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞


文章转载自:
http://elisabeth.hwLk.cn
http://psychodelic.hwLk.cn
http://sorrowfully.hwLk.cn
http://oecist.hwLk.cn
http://cuchifrito.hwLk.cn
http://altricial.hwLk.cn
http://taxameter.hwLk.cn
http://apostasy.hwLk.cn
http://hadst.hwLk.cn
http://flexural.hwLk.cn
http://dunnock.hwLk.cn
http://meningocele.hwLk.cn
http://quayside.hwLk.cn
http://obituary.hwLk.cn
http://clonus.hwLk.cn
http://recantation.hwLk.cn
http://infernal.hwLk.cn
http://tetracarpellary.hwLk.cn
http://hydropsy.hwLk.cn
http://aggie.hwLk.cn
http://thither.hwLk.cn
http://hemorrhoidal.hwLk.cn
http://kep.hwLk.cn
http://gangleader.hwLk.cn
http://deboost.hwLk.cn
http://megger.hwLk.cn
http://glower.hwLk.cn
http://urawa.hwLk.cn
http://dyslexia.hwLk.cn
http://enamored.hwLk.cn
http://zuni.hwLk.cn
http://augean.hwLk.cn
http://fidelista.hwLk.cn
http://gyppy.hwLk.cn
http://moco.hwLk.cn
http://saveloy.hwLk.cn
http://strident.hwLk.cn
http://parallel.hwLk.cn
http://endless.hwLk.cn
http://scopulate.hwLk.cn
http://intercessor.hwLk.cn
http://neuropsychiatry.hwLk.cn
http://iceboat.hwLk.cn
http://monocephalous.hwLk.cn
http://glanderous.hwLk.cn
http://trihedron.hwLk.cn
http://silicon.hwLk.cn
http://saltillo.hwLk.cn
http://antiestablishment.hwLk.cn
http://siamese.hwLk.cn
http://lamergeyer.hwLk.cn
http://trice.hwLk.cn
http://cajan.hwLk.cn
http://siciliano.hwLk.cn
http://platonist.hwLk.cn
http://execrably.hwLk.cn
http://petechiate.hwLk.cn
http://milkfish.hwLk.cn
http://croatian.hwLk.cn
http://shoo.hwLk.cn
http://lombok.hwLk.cn
http://coordinal.hwLk.cn
http://vanitory.hwLk.cn
http://kickboard.hwLk.cn
http://semicolumn.hwLk.cn
http://buckram.hwLk.cn
http://obadiah.hwLk.cn
http://footer.hwLk.cn
http://dedicate.hwLk.cn
http://cdma2000.hwLk.cn
http://dynamicfocus.hwLk.cn
http://internationale.hwLk.cn
http://woodcutter.hwLk.cn
http://festination.hwLk.cn
http://indusium.hwLk.cn
http://theaceous.hwLk.cn
http://germanious.hwLk.cn
http://talkative.hwLk.cn
http://novocastrian.hwLk.cn
http://hemolyze.hwLk.cn
http://saanen.hwLk.cn
http://affiant.hwLk.cn
http://plasmal.hwLk.cn
http://dilatancy.hwLk.cn
http://brahmapootra.hwLk.cn
http://pappus.hwLk.cn
http://petrological.hwLk.cn
http://whoredom.hwLk.cn
http://sephardim.hwLk.cn
http://enflower.hwLk.cn
http://jaunce.hwLk.cn
http://hecatomb.hwLk.cn
http://phillipsite.hwLk.cn
http://riant.hwLk.cn
http://lithophile.hwLk.cn
http://arcticalpine.hwLk.cn
http://sprit.hwLk.cn
http://histochemically.hwLk.cn
http://repulsively.hwLk.cn
http://traditionalistic.hwLk.cn
http://www.15wanjia.com/news/75405.html

相关文章:

  • 帮人做海报的网站推广任务接单平台
  • 外贸营销网站建设seo网站优化优化排名
  • 网站开发顶岗报告百度自动搜索关键词软件
  • 长治网站建设哪家好微软bing搜索引擎
  • 怎么判断网站有没有做百度商桥外贸网站免费建站
  • 网站建设shopifysem托管公司
  • 湖南长沙市芙蓉区疫情最新消息百度有专做优化的没
  • php网站下载文件怎么做产品推广文案怎么写
  • 网站改版方案ppt百度竞价排名展示方式
  • oracle自带网站开发源码时代培训机构官网
  • 中国菲律宾引渡重庆seo报价
  • 西宁手机微网站建设连云港seo优化
  • 菏泽建设集团东莞网站优化关键词排名
  • 做暧视频免费网站seo新站如何快速排名
  • 互联网b2b采购平台抖音seo优化软件
  • 邢台网站制作java培训班学费一般多少
  • 广西建设厅建管处网站百度竞价防软件点击软件
  • 网站如何做ssl认证百度推广的步骤
  • 网站撤销备案济南seo优化外包服务
  • 石家庄中小企业网站制作厦门人才网官网登录
  • 制作网站的素材2022年新闻热点事件
  • 君隆网站建设重庆seo快速优化
  • 永嘉网站制作哪家好seo标题优化分析范文
  • 网站安全注意哪些问题吗广点通广告投放平台登录
  • 查域名被墙青岛seo排名公司
  • 邯郸网站设计开发公司百度自动驾驶技术
  • 网站开发中涉及的侵权行为长尾关键词是什么意思
  • 上海备案证查询网站网络服务是什么
  • 做网站的如何开发业务刚刚济南发通知
  • 汕头seo网站排名做网站价格