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

阿里云怎么做淘客网站ui设计师需要学的软件

阿里云怎么做淘客网站,ui设计师需要学的软件,做网站有现成的程序,北京网站被处罚guice spring根据弹簧对象的名称识别它们 不管使用XML还是Java配置都没有关系#xff0c;Spring范围大致类似于Map String#xff0c;Object结构。 这意味着您不能有两个名称相同的对象 。 为什么这是一件坏事#xff1f; 如果您的大型应用程序具有许多Configuratio… guice spring 根据弹簧对象的名称识别它们 不管使用XML还是Java配置都没有关系Spring范围大致类似于Map StringObject结构。 这意味着您不能有两个名称相同的对象 。 为什么这是一件坏事 如果您的大型应用程序具有许多Configuration类或XML文件则很容易意外地两次使用相同的名称。 最糟糕的部分是将它们与多个对象一起使用时它们会默默地相互覆盖直到在ApplicationContext中仅实际保留一个对象为止。 这些对象也可以具有不同的类型而声明顺序才是真正确定哪个对象获胜的因素。 这里的问题是如果要基于Spring创建可重用的模块则基本上将被迫在名称或其他名称中使用前缀以确保不会出现名称冲突。 Guice对象根据其类别进行识别 Guice范围基本上类似于Map Class Object结构。 这意味着如果不使用额外的元数据例如限定词 就不能拥有两个相同类型的对象 。 这种设计选择各有利弊但总的来说我认为这是比较明智​​的选择。 如果创建可重用的模块则必须确保不导出任何通用类型的对象例如String。 使用基于类型的作用域您始终可以为常见类型创建一个包装的类而使用基于名称的作用域您将始终不得不根据幸运的猜测使用唯一的名称。 Guice还具有PrivateModules因此您可以对所有注入使用Guice但仅导出范围中的某些对象。   范例程式码 这是一个Spring应用程序的幼稚示例由于静默Bean覆盖而中断了运行时。 Main.java 此类实例化应用程序上下文注册配置类并尝试从上下文中获取MyBean。 package springbreak;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Main {public static void main(String[] args) {AnnotationConfigApplicationContext ctx new AnnotationConfigApplicationContext();ctx.register(GoodConfig.class);ctx.register(EvilConfig.class);ctx.refresh();ctx.start();System.out.println(ctx.getBean(MyBean.class).getValue());ctx.stop();} } MyBean.java 这只是我们期望从应用程序上下文中获得的一种示例类型的Bean。 package springbreak;public interface MyBean {String getValue(); } GoodConfig.java 这是一个导出MyBean的配置类 package springbreak;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class GoodConfig {private static class MyBeanImpl implements MyBean {public String getValue() {return Im a bean;}}Beanpublic MyBean myBean() {return new MyBeanImpl();}} EvilConfig.java 此配置类导出名为myBean的String。 这不是一个非常现实的示例但显示了基本思想。 package springbreak;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class EvilConfig {Beanpublic String myBean() {return Im a string!;}} 分析例子 您可以猜测运行示例时会发生什么吗 这是基本思想 GoodConfig导出名称为“ myBean”的MyBeanImpl。 即使类型不匹配 EvilConfig 也会导出一个名称为“ myBean”的字符串以替换GoodConfig中的字符串 Main获得NoSuchBeanDefinitionException“未定义[springbreak.MyBean]类型的唯一bean” 因此基本上将MyBeanImpl替换为String并且不会实现MyBean的bean。 最糟糕的部分是 如果您颠倒Configuration类的注册顺序该代码将起作用因为然后String将被MyBeanImpl替换。 现在假设您有20个封装良好的模块这些模块的名称可能会发生冲突……我在这种情况下几次尝试调试问题时都碰壁了。 Spring从3.0.6版开始无法更改Configuration类导出的bean的命名。 如果要创建可安全重用的模块则必须在导出Bean的方法中使用某种完全限定的名称例如goodConfigMyBeanevilConfigMyBean。 我喜欢Spring尤其是非DI容器部件但是在新项目中我将拒绝使用从根本上被破坏的库。 是的两次使用相同的名称是开发人员错误但是任何容易发生此类错误的库都可以认为比尝试最小化这些错误的替代方法更糟。 参考 Spring vs Guice Jawsy Solutions技术博客博客上我们JCG合作伙伴 Joonas Javanainen 的一个重要差异 。 翻译自: https://www.javacodegeeks.com/2012/06/spring-vs-guice-one-critical-difference.htmlguice spring
http://www.zqtcl.cn/news/156366/

相关文章:

  • 西充移动网站建设如何设计一个简洁的logo
  • 济宁做网站自媒体新手入门
  • 重庆网站开发哪家专业网站布局图
  • 网站设计原则的历史网站开发 模块
  • 做企业网站收费自己的网站怎么做排名
  • 做网站网站软件开发经费预算
  • 优化网站图片网站图片布局
  • 有效的网站需要做到什么意思商业网站是什么
  • 网站设计开发网站用c 建网站时怎么做导航菜单栏
  • 哪些网站做推广比较有效果厦门网站建设公司名单
  • 街头小吃加盟网站建设网站专题制作
  • 网站论坛推广方案加强思政部网站建设
  • 查看WordPress网站插件北京西站附近的景点有哪些
  • 网站建设技术合同模板下载怎么用phpstudy做网站
  • 青岛网站建设找二维码生成器怎么弄
  • 百度突然搜不到我的网站网络安全软件有哪些
  • 江阴做网站的地方网站维护需要的知识
  • 做网站是域名怎么申请网页设计跟做网站一样吗
  • 叮当快药网站谁做的网站开发遇到的最大困难
  • 一个域名可以建几个网站毕业设计可以做哪些简单网站
  • 知名商城网站建设报价wordpress 后台 logo
  • 单位网站建设框架yellow网站推广联盟
  • html5和php做网站做网站租用服务器
  • 网站开发中效率较高的编程语言公司域名注册流程
  • 万户网站管理系统4.0cms监控系统手机版下载
  • 宁波专业网站建设怎么做如何做一个虚拟网站
  • 网站栏目建设调研公司怎么建立一个网站
  • 苍溪建设局网站网站建设和维护采购协议
  • 代做网站微信号下载 wordpress插件
  • 泉州住房建设局网站wordpress输入html代码