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

网站建设费专用票asp.net+制作网站开发

网站建设费专用票,asp.net+制作网站开发,福田区做网站公司,想买手表在哪个网站买是正品Spring框架中有三种注入变量#xff1a; 基于二传手的注射 基于构造函数的注入 基于现场的注入 这些机制中的每一种都有优点和缺点#xff0c;并且不仅只有一种正确的方法。 例如现场注入#xff1a; Autowired private FooBean fooBean;在生产代码中使用它通常不是最好… 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.html
http://wiki.neutronadmin.com/news/200466/

相关文章:

  • 物业服务网站建设word素材库免费
  • 国内扁平化网站怎么根据已有网站做新网站
  • 大连模版网站建个地方门户网站要多少钱
  • 做结构设计有没有自学的网站如何设置网站服务器
  • 官方网站数据如何做脚注哈尔滨网站建立公司
  • 合肥网站建设过程网站建设公司 中企动力公司
  • 专业手机网站设计网站建设费如何核算
  • 汉狮做网站公司郑州惊艳的网站设计
  • 网站底部样式津南做网站的公司
  • 公司品牌flash网站设计推广app
  • 专门做地方特产的网站如何对网站页面进行优化
  • 字体图标网站泰安网络科技公司
  • 国外做外汇网站交流阿里云服务器wordpress配置
  • 营销型网站建设题库nginx wordpress 二级目录
  • 网站建设与维护经营范围华久做网站
  • 应该如何做营销型网站制作一款app需要多少钱
  • 免费建站系统wordpress现在清算组备案在哪个网站做
  • 建设网站的实验目的网络营销就是网站营销
  • 网站制作开发技术深圳外贸公司获客
  • 网站设计制作太原河南如何做网站
  • 陕西省建设部网站国际军事新闻联播
  • 网站开发问卷调查荆门市网站建设
  • 第一百四十七章 做视频网站做警员编号网站
  • 网站解析后怎么做做网站注意事项
  • 甘肃省建设工程安全质量监督管理局网站桂林官网
  • 如何规划企业网站wordpress 添加搜索
  • 益阳网站建设益阳图片点开是网站怎么做
  • 南高齿网站是谁做的南京江宁做网站
  • 七台河北京网站建设深圳网页制作案例
  • 企业内网网站wordpress 后台 留言