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

自适应网站的缺点郑州商城网站制作

自适应网站的缺点,郑州商城网站制作,海淀青岛网站建设,酒店网站的规划与建设Java EE6的最大承诺之一就是简化了依赖注入的使用。 他们做到了#xff0c;使用CDI 。 CDI代表Java EE的上下文和依赖注入#xff0c;它提供了一个基础集#xff0c;用于在企业应用程序中应用依赖注入。 在CDI之前#xff0c;EJB 3还引入了依赖注入#xff0c;但这有点基础… Java EE6的最大承诺之一就是简化了依赖注入的使用。 他们做到了使用CDI 。 CDI代表Java EE的上下文和依赖注入它提供了一个基础集用于在企业应用程序中应用依赖注入。 在CDI之前EJB 3还引入了依赖注入但这有点基础。 您可以将EJB全状态或无状态注入另一个EJB或Servlet如果您的容器支持。 当然并不是每个应用程序都需要EJB的这就是CDI如此受欢迎的原因。 首先我已经举了这个例子。 有一个Payment接口和2个实现。 现金付款和签证付款。 我希望仍然可以使用相同的界面选择我注入的女巫付款类型 public interface Payment {void pay(BigDecimal amount); } 这是两个实现 public class CashPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(CashPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} cash, amount.toString());} }public class VisaPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(VisaPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} with visa, amount.toString());} } 要注入接口我们使用Inject批注。 注释基本上按照它说的去做。 它注入一个组件该组件在您的应用程序中可用。 Inject private Payment payment; 当然您看到的消息来自一英里远这是行不通的。 该容器具有我们的Payment接口的2个实现因此他不知道要注入哪个。 类型[Payment]类型的依赖关系在注入点[[field] Inject private be.styledideas.blog.qualifier.web.PaymentBackingAction.payment]处带有限定符[Default] 因此我们需要某种限定符来指出我们想要的实现。 CDI提供Named批注使您可以为实现命名。 Named(cash) public class CashPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(CashPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} cash, amount.toString());} }Named(visa) public class VisaPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(VisaPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} with visa, amount.toString());} } 现在当我们更改注入代码时我们可以指定所需的实现。 Inject private Named(visa) Payment payment; 这行得通但是灵活性受到限制。 当我们想重命名Named参数时我们必须在使用它的每个地方都对其进行更改。 也没有重构支持。 有一个更好的选择可以使用Qualifier注释使用定制注释。 让我们稍微更改一下代码。 首先我们创建新的注释类型。 java.lang.annotation.Documented java.lang.annotation.Retention(RetentionPolicy.RUNTIME) javax.inject.Qualifier public interface CashPayment { }java.lang.annotation.Documented java.lang.annotation.Retention(RetentionPolicy.RUNTIME) javax.inject.Qualifier public interface VisaPayment { } 添加到批注中的Qualifier批注使此批注可由容器发现。 现在我们可以简单地将这些注释添加到我们的实现中。 CashPayment public class CashPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(CashPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} cash, amount.toString());} }VisaPayment public class VisaPaymentImpl implements Payment {private static final Logger LOGGER Logger.getLogger(VisaPaymentImpl.class.toString());Overridepublic void pay(BigDecimal amount) {LOGGER.log(Level.INFO, payed {0} with visa, amount.toString());} } 现在我们唯一需要做的就是将我们的注入代码更改为 Inject private VisaPayment Payment payment; 现在当我们对限定符进行更改时我们将获得不错的编译器和重构支持。 这也为API或特定于域的语言设计增加了灵活性。 参考 Java EE6 CDI来自Styled Ideas Blog的 JCG合作伙伴 Jelle Victoor的 命名组件和限定词 。 相关文章 Java EE6装饰器在注入时装饰类 Java EE6事件JMS的轻量级替代品 Java EE中的配置管理 基本的EJB参考注入和查找 Java模块化方法–模块模块模块 Java EE过去现在和云7 Java教程和Android教程列表 翻译自: https://www.javacodegeeks.com/2011/10/java-ee6-cdi-named-components-and.html
http://www.pierceye.com/news/851325/

相关文章:

  • h5网站建设价格wp-wordpress
  • 简单描述一下网站制作的流程投资理财产品的网站建设
  • 企业网站制作托管东营高端网站建设
  • 可以推广网站建立网站接受投注是什么意思
  • 微网站制作网站开发创建自己网站的步骤
  • 人才网网站开发手册外链发布平台大全
  • 福州网站备案wordpress打开媒体链接设置
  • 大学网站建设考核办法永春网站设计
  • 哪个设计网站赚钱百度地图网页版进入
  • 网站备案号不存在100m的网站 数据库
  • 网站空间管理平台网站模版 优帮云
  • 网站开发的比较备案期间 需要关闭网站吗
  • 做网站 怎么推广上海市企业服务云十问十答
  • 怎么做一种网站为别人宣传wordpress query_posts()
  • 网站的运营和维护专业做网站官网
  • 详细论述制作网站的步骤做网站需求 后期方便优化
  • 蒙icp备 网站建设学校网站建设管理
  • 做免费外贸网站册域名网站大全免黄
  • 祈网网站建设制作网站如何赚钱
  • 最讨厌网站门户类网站的主页设计
  • 国家建设环保局网站网站做的好赚钱吗
  • 如何设置网站服务器做标签的网站
  • 网站建设高端培训学校做网站交易平台
  • 公司网站建设收费优化网站排名解析推广
  • 昆明快速建站模板汽车网站建设多少钱
  • 网站注销主体注销广州联享网站建设公司怎么样
  • 中山seo建站新手建站教程报价单
  • 台州制作网站软件陈坤做直播在哪个网站
  • 北湖区网站建设公司企业主题wordpress 含演示数据
  • 网站建设简历自我评价做招聘信息的网站有哪些内容