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

旭泽建站shopify官网

旭泽建站,shopify官网,怎样查看网站总浏览量,成功的电子商务网站设计spring依赖注入Spring框架中有三种注入变量#xff1a; 基于二传手的注射 基于构造函数的注入 基于现场的注入 这些机制中的每一种都有优点和缺点#xff0c;并且不仅只有一种正确的方法。 例如现场注入#xff1a; Autowired private FooBean fooBean;在生产代码中使用… spring依赖注入 Spring框架中有三种注入变量 基于二传手的注射 基于构造函数的注入 基于现场的注入 这些机制中的每一种都有优点和缺点并且不仅只有一种正确的方法。 例如现场注入 Autowired private FooBean fooBean; 在生产代码中使用它通常不是最好的主意主要是因为它使我们的bean无法在不启动Spring上下文或不使用反射hack的情况下进行测试。 另一方面它几乎不需要其他代码并且可以在集成测试中使用-绝对不会独立实例化。 我认为这是基于现场注射的唯一情况。 现在让我们集中讨论两个主要变体。 在Spring文档中我们可以读到 …将构造函数参数用于强制性依赖项并将设置器用于可选的依赖项是一个很好的经验法则。 同样在参考Spring到3.1的文档中 我们可以找到一个句子 Spring团队通常提倡setter注入因为大量的构造函数参数可能变得笨拙尤其是当属性是可选的时。 这种情况在文档中已更改为第四版其中指出 Spring团队通常提倡构造函数注入因为它使人们能够将应用程序组件实现为不可变对象并确保所需的依赖项不为null。 尤其是在版本4.0之前的人们使用基于构造函数的注入方法其中也有些“纯粹主义者”这也可以在本文档中找到的时候 这很酷请注意在第四个框架发布之前这种注入方法存在很大的问题–方面要求使用默认构造函数。 现在仍然存在基于构造函数的注入的“缺点”它不允许循环依赖。 我特意在双引号中添加了缺点因为对我来说这是该机制的巨大优势)文档中还有另外一句话 通常建议不要在您的bean之间使用循环引用。 但为什么 如果我们的应用程序中有循环引用该怎么办 我不想写有关应用程序设计的文章因为几乎总是可以重构我们的代码并将有问题的逻辑委托给第三个bean。 有两个重大而不幸的“沉默”问题。 第一个陷阱 调用ListableBeanFactory.getBeansOfType方法时不能确定将返回哪些Bean。 让我们看一下DefaultListableBeanFactory类的代码 if (isCurrentlyInCreation(bce.getBeanName())) {if (this.logger.isDebugEnabled()) {this.logger.debug(Ignoring match to currently created bean beanName : ex.getMessage());}// ...continue; } 如您所见如果您不使用DEBUG日志记录级别那么将有零个信息表明Spring在解析过程中跳过了特定的bean。 如果您想获取所有事件处理程序那就太麻烦了:) 第二陷阱 第二个问题涉及AOP。 如果要在bean上使用方面请确保它不涉及循环引用-否则Spring将创建bean的两个实例–一个没有方面另一个具有适当方面。 当然仍然没有任何信息。 惊讶吗 对我来说 停止在我们的应用程序中使用循环依赖就足够了特别是与此相关的行为可能更有趣。 请勿使用循环依赖 但是我们该如何摆脱困境呢 当然您可以使用基于构造函数的注入:)但是如果您拥有大量应用程序那么花很多时间重写所有类以使用构造函数而不是setter并不是最好的主意。 幸运的是我有个好消息– AbstractRefreshableApplicationContext类中的allowCircularReferences字段。 只需添加一行到应用程序上下文创建所描述的方式在这个岗位 AnnotationConfigWebApplicationContext applicationContext new AnnotationConfigWebApplicationContext(); applicationContext.setAllowCircularReferences(false); // rest of context initialization 最后为了使您心情愉快我从DefaultListableBeanFactory粘贴了另一个代码片段 catch (NoSuchBeanDefinitionException ex) {// Shouldnt happen - probably a result of circular reference resolution...if (logger.isDebugEnabled()) {logger.debug(Failed to check manually registered singleton with name beanName , ex);} } 祝你今天愉快 :) 翻译自: https://www.javacodegeeks.com/2015/01/dependency-injection-pitfalls-in-spring.htmlspring依赖注入
http://www.zqtcl.cn/news/612884/

相关文章:

  • 婚恋网站排名前十名网站建设的论坛
  • 进行网站建设有哪些重要意义上海浦东建筑建设网站污水处理工程
  • 自己做qq代刷网站要钱吗瑞安网站建设优化推广
  • 建设网站招标定制高端网站建设报价
  • 商城网站建设code521广州安全教育平台登录入囗
  • 如何做网站系统安庆网站建设公司简
  • 北京做网站电话的公司网站怎么做外链
  • 手工艺品外贸公司网站建设方案复古风格网站
  • 企业网站后端模板如何编写手机程序
  • 泰州网站建设服务好wordpress 子分类
  • 做个企业网站要多少钱php mysql怎么编写视频网站
  • 精仿手表网站做网站为什么要做备案接入
  • 哈什么网一个网站做ppt清新区城乡建设局网站
  • 重庆专业网站建设首页排名网站模板广告去除
  • 河南省建设行业证书查询网站怎么用ps做网站首页背景图片
  • 如何取一个大气的名字的做网站青岛北方现货交易平台
  • 关于做书的网站购物网站建设资讯
  • 运营网站开发工作招聘做装修有什么好网站可以做
  • 免费自学平面设计的网站直播网站开发源码
  • 电子商务网站建设实践广州网站建设公司怎么选
  • 做公众号的素材网站分销电商平台有哪些
  • 网站后期维护协议如何免费注册网址
  • 内容展示型网站 设计特点福州百度seo
  • 外贸网站 推广影视广告宣传片制作公司
  • crm系统管理大兴安岭地网站seo
  • 免费 网站模板为什么自己做的网站别的电脑打不开
  • 公司网站建设建设辽宁鞍山网站建设
  • 企业为什么做网站优化推广做网站学什么什么专业
  • 怎样访问简版网站中小企业网站建设济南兴田德润电话
  • 哪里有零基础网站建设教学服务常用知名购物网站