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

苏州网络网站建设东莞专业网站建站设计

苏州网络网站建设,东莞专业网站建站设计,馆陶网站建设电话,市场监督管理局官网查询系统Jersey是Oracle提供的出色的Java JAX-RS规范参考实现。 去年#xff0c;当我们开始为大容量网站构建RESTful后端Web服务时#xff0c;我们选择使用JAX-RS API作为我们的REST框架和Spring框架来进行依赖项注入。 泽西岛是我们选择的JAX-RS实现。 项目启动时#xff0c;JAX-R… Jersey是Oracle提供的出色的Java JAX-RS规范参考实现。 去年当我们开始为大容量网站构建RESTful后端Web服务时我们选择使用JAX-RS API作为我们的REST框架和Spring框架来进行依赖项注入。 泽西岛是我们选择的JAX-RS实现。 项目启动时JAX-RS API 2.0规范尚未发布Jersey 2.0也未发布。 由于我们没有看到JAX-RS 1.1的任何根本缺陷并且因为存在针对Jersey 1.1的稳定的Spring集成模块所以我们决定使用经过实践检验的版本而不是采用前沿技术。 尽管如此我还是想知道采用更新版本会获得什么所以我开始在业余时间看一下JAX-RS 2 API并使用Jersey 2做一些原型设计。我注意到Jersey 2缺乏与Spring框架集成的功能适用于以前的版本。 进一步研究该问题我发现旧的Spring集成模块无法直接移植到Jersey2。原因是Jersey 1建立在自定义内部依赖注入框架上而Jersey 2已切换到HK2进行依赖注入。 HK2是在GlassFish中使用的有趣的轻量级的依赖注入框架。 我实现Jersey-Spring集成的最初目标非常简单 将在应用程序上下文XML中声明的Spring bean注入到JAX-RS资源类中使用Autowired批注或XML配置 因此我认为我需要更深入地研究并开始研究Jersey的源代码。 我很高兴地注意到泽西岛的开发正在以开放和平易近人的方式进行。 源代码托管在GitHub上并经常更新。 经过一段时间的挖掘Jersey Spring集成的高级设计开始形成。 在第一个可运行的原型制作之前进行了大量的实验和多次迭代。 那时作为一个乐观主义者我希望我快完成了并联系了球衣用户的邮件列表以获取有关设计和实现的反馈。 反馈添加更多用例提供示例代码实现测试自动化签署Oracle贡献者协议从泽西软件产品的角度来看反馈当然是非常合理的。 因此虽然还没有完全回到绘图板上但是到了这一点我意识到最后一英里要比我期望的要长得多。 最终Jersey-Spring集成最终合并到Jersey v2.2版本的Jersey 2代码库中。 集成API基于注释并支持以下功能 将Spring bean注入到Jersey管理的JAX-RS资源类中使用org.springframework.beans.factory.annotation.Autowired或javax.inject.Inject。 Qualifier和Named批注可用于进一步限定注入的实例。 允许JAX-RS资源类实例生命周期由Spring而不是Jersey管理org.springframework.stereotype.Component 支持不同的Spring bean注入范围单例请求原型。 Bean作用域在applicationContext.xml中声明。 实施 Jersey-Spring集成的源代码可在主Jersey源存储库中找到 https : //github.com/jersey/jersey/tree/2.5.1/ext/spring3/src/main/java/org/glassfish/球衣/服务器/Spring Jersey-Spring集成包含以下实现类 org.glassfish.jersey.server.spring.SpringComponentProvider 该ComponentProvider实现已在Jersey SPI扩展机制中注册它负责引导Jersey 2 Spring集成。 它使Jersey跳过了Spring组件的JAX-RS生命周期管理。 否则Jersey会将这些类绑定到具有Jersey默认范围的HK2 ServiceLocator而无需遵守为Spring组件声明的范围。 该类还初始化HK2弹簧桥并向HK2 ServiceLocator注册Spring Autowired注释处理程序。 当在servlet上下文之外运行时将定制的org.springframework.web.context.request.RequestScope实现配置为实现Bean的请求范围。 org.glassfish.jersey.server.spring.AutowiredInjectResolver HK2注入解析器注入使用Spring框架Autowired注释声明的依赖项。 HK2调用此解析器并要求它解析使用Autowired注释的依赖项。 org.glassfish.jersey.server.spring.SpringLifecycleListener 处理容器生命周期事件。 重新加载时刷新Spring上下文并在关闭时将其关闭。 org.glassfish.jersey.server.spring.SpringWebApplicationInitializer 一个便利类可帮助用户避免在web.xml中配置Spring ContextLoaderListener和RequestContextListener。 或者用户可以在Web应用程序web.xml中配置它们。 除了实际的实现代码之外该集成还包括示例和测试 这对于使开发人员入门非常有帮助。 JAX-RS规范定义了自己的依赖项注入API。 另外Jersey支持不受JAX-RS规范要求的JSR 330样式注入。 Jersey-Spring集成增加了对Spring样式注入的支持。 JAX-RS注入和Spring集成都提供了一种将对象绑定到注册表中的机制以便以后可以查找和注入对象。 如果使用的是完整的Java EE应用程序服务器例如Glassfish则还可以选择通过CDI API绑定对象。 在非Java EE环境中可以通过嵌入容器实现例如Weld来使用CDI。 另一个绑定方法是使用Jersey特定的API。 测试代码包括一个JAX-RS应用程序类该类演示了如何完成此工作。 修改球衣Spring 如果您想在Jersey-Spring上工作则需要查看Jersey 2的代码库并进行构建。 该过程相当容易并且有据可查 https : //jersey.java.net/documentation/2.5.1/how-to-build.html 您只需要克隆存储库并构建源即可。 构建系统基于Maven。 您还可以使用其Maven插件轻松地将代码库导入所选的IDE与IDEA 12Eclipse 4.3和NetBeans 8.0 beta进行了尝试。 但是我注意到某些集成测试在Maven 3.0中失败了我不得不升级到3.1但是除此之外没有任何问题。 构建Jersey 2之后您可以修改Spring集成模块并仅构建更改的模块以节省时间。 测验 Jersey-Spring集成测试已使用Jersey测试框架构建 并且在maven-failsafe-plugin的控制下运行。 集成测试由实际的测试代码和测试执行的JAX-RS后端Webapp组成。 使用jetty-maven-plugin将后端部署到外部Jetty servlet容器中。 Jersey-Spring测试可以与其余测试分开执行。 集成测试可以在以下单独的Maven子模块中找到 https : //github.com/jersey/jersey/tree/2.5.1/tests/integration/spring3 除了演示Jersey-Spring的基本功能外这些测试还展示了如何使用不同的Spring bean范围单例请求原型。 测试还展示了使用JAX-RS应用程序类在不同范围内在容器中注册您自己的依赖项。 结论 我认为JAX-RS 2.0 API提供了一种在Java中实现RESTful接口的好方法。 Jersey JAX-RS参考实现的开发正在以公开透明的方式进行。 泽西岛还有大量活跃的用户社区。 正如小弗雷德里克·布鲁克斯Frederick BrooksJr.所说“所有程序员都是乐观主义者”。 通常很容易低估将代码与相对较大和复杂的代码库集成所需的工作量尤其是当您需要在多个不同框架在此例中为JerseyHK2和Spring框架之间进行调解时。 此外尽管Jersey拥有相当不错的用户文档但我错过了有关设计和实现的高级体系结构文档。 为了确定正确的集成点需要进行大量的探索。 幸运的是Jersey构建系统非常易于使用并且仅允许构建选定的零件这使得实验和变更-构建-测试周期相对较快。 Jersey和Spring框架都提供了丰富的功能集您可以通过多种方式一起使用它们。 当前形式的Jersey-Spring集成涵盖了两者之间的几个基本集成方案。 如果发现您的特定情况不受支持请加入jersey-users邮件列表进行讨论。 您还可以检出代码实施更改并通过在GitHub上提交拉取请求来贡献它们。 参考在实践技术博客上由我们的JCG合作伙伴 Marko Asplund 实现了Jersey 2 Spring集成 。 翻译自: https://www.javacodegeeks.com/2014/02/implementing-jersey-2-spring-integration.html
http://www.zqtcl.cn/news/899237/

相关文章:

  • 免费网站空间怎么做网站主持人
  • 开源建站系统有哪些网站信息化建设合同
  • 昆明云南微网站淄博专业网站建设
  • 古典网站源码海南app开发
  • 自己做网站前期困难吗怎么早网站上放广告
  • 建设银行招标网站南昌网站建设公司信息
  • 网站建设与管理专业介绍湖南长沙邮政编码
  • 社区论坛系统免费开源seo网站诊断报告
  • 网站LOGO透明底色PNG格式怎么做的开发一款游戏需要多少资金
  • 网站推广营销策略北京东直门网站建设
  • 制作公司网站需要购买域名和服务器吗聊城做企业网站
  • 大连网站建设价格低做校招的网站有哪些
  • 电脑端网站和手机网站区别做的好的营销型网站有哪些内容
  • 长沙市做网站网站建设 全是乱码
  • ps做网站原形系统学做网站
  • 接网站 建设wordpress 打开慢 google
  • wordpress 移动 建站网站前台如何做访问量显示
  • 公司做网站买域名之后做什么打鱼网站开发
  • 南京市城乡建设局网站二级建造师证件查询
  • 百度关键词优化系统网站优化师招聘
  • 网站方案建设书推广产品的软文怎么写
  • 网站栏目按扭邢台手机网站建设地方
  • 青浦赵巷网站建设做网站需要编程吗
  • 公司logo设计含义株洲seo
  • 公司制作网站做论坛网站怎么赚钱吗
  • 深圳 外贸 网站建设 龙医院网站建设价格
  • 网上建网站驰易网站建设
  • 建设工程招标专业网站网站联盟广告
  • 自建站英文公司网站制作银川
  • 顺德网站建设公司信息全网推广软件