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

杭州如何做百度的网站wordpress搜索即时显示

杭州如何做百度的网站,wordpress搜索即时显示,wordpress集团网站,WordPress个性萌化插件我最近加入了一个团队#xff0c;试图将一个单一的遗留系统转换为Java中的RESTful服务集。 他们决定使用最新的2.x版本的Jersey作为REST容器#xff0c;这对我来说不是首选#xff0c;因为我不是JSR- *规范的忠实拥护者。 但是现在我必须承认#xff0c;JAX-RS 2.x的运行正… 我最近加入了一个团队试图将一个单一的遗留系统转换为Java中的RESTful服务集。 他们决定使用最新的2.x版本的Jersey作为REST容器这对我来说不是首选因为我不是JSR- *规范的忠实拥护者。 但是现在我必须承认JAX-RS 2.x的运行正确需要几乎零的样板代码支持功能的自动发现并且像其他现代框架一样更喜欢使用约定而不是配置。 由于该规范还很年轻因此很难找到具有一些可用代码的优秀教程和启动项目。 我在GitHub上创建了jersey2-starter项目该项目可用作您自己的生产就绪RESTful服务的起点。 在本文中我想介绍如何实现和集成测试您自己的REST资源验证约束。 自定义约束 用Java编写REST时困扰我的问题之一是用注释乱扔您的类模型。 假设您想构建一个简单的Todo列表REST服务当使用Jacksonvalidation和Spring Data时您可以轻松地将其作为实体类结束 Document public class Todo {private Long id;NotNullprivate String description;NotNullprivate Boolean completed;NotNullprivate DateTime dueDate;JsonCreatorpublic Todo(JsonProperty(description) String description, JsonProperty(dueDate) DateTime dueDate) {this.description description;this.dueDate dueDate;this.completed false;}// getters and setters } 您的域模型现在几乎到处都被混乱的注释有效地模糊了。 让我们看看如何使用验证约束 NotNull 。 有人可能会说您可以引入一些具有自己的验证规则的DTO层但是这与纯REST API设计对我来说是冲突的后者表示您在应映射到您的域类的资源上进行操作。 另一方面– Todo对象有效是什么意思 创建Todo 应提供说明和截止日期但是更新时会怎样 您应该能够更改描述截止日期推迟和完成标志标记为完成中的任何一个但是您至少应提供其中之一作为有效的修改。 所以我的想法是引入自定义验证约束用于创建和修改的约束不同 Target({TYPE, PARAMETER}) Retention(RUNTIME) Constraint(validatedBy ValidForCreation.Validator.class) public interface ValidForCreation {//...class Validator implements ConstraintValidatorValidForCreation, Todo {/...Overridepublic boolean isValid(Todo todo, ConstraintValidatorContext constraintValidatorContext) {return todo ! null todo.getId() null todo.getDescription() ! null todo.getDueDate() ! null;}} }Target({TYPE, PARAMETER}) Retention(RUNTIME) Constraint(validatedBy ValidForModification.Validator.class) public interface ValidForModification {//...class Validator implements ConstraintValidatorValidForModification, Todo {/...Overridepublic boolean isValid(Todo todo, ConstraintValidatorContext constraintValidatorContext) {return todo ! null todo.getId() null (todo.getDescription() ! null || todo.getDueDate() ! null || todo.isCompleted() ! null);}} } 现在您可以将验证注释移至REST端点的定义 POST Consumes(APPLICATION_JSON) public Response create(ValidForCreation Todo todo) {...}PUT Consumes(APPLICATION_JSON) public Response update(ValidForModification Todo todo) {...} 现在您可以从模型中删除那些NotNull 。 整合测试 集成测试通常有两种方法 测试是在与应用程序不同的JVM上运行的而该应用程序已部署在其他集成环境中 测试在设置块中以编程方式部署应用程序。 两者都有其优点和缺点但是对于足够小的服务我个人更喜欢第二种方法。 设置起来非常容易并且您只启动了一个JVM这使得调试非常容易。 您可以使用Arquillian之类的通用框架在容器环境中启动应用程序但是我更喜欢简单的解决方案而只是使用嵌入式Jetty。 为了使测试设置100等效于生产我正在创建完整的Jetty的WebAppContext并且必须解决所有运行时相关性才能使Jersey自动发现正常工作。 这可以通过Arrinklian子项目Shrinkwrap解决的Maven 轻松实现 WebAppContext webAppContext new WebAppContext();webAppContext.setResourceBase(src/main/webapp);webAppContext.setContextPath(/);File[] mavenLibs Maven.resolver().loadPomFromFile(pom.xml).importCompileAndRuntimeDependencies().resolve().withTransitivity().asFile();for (File file: mavenLibs) {webAppContext.getMetaData().addWebInfJar(new FileResource(file.toURI()));}webAppContext.getMetaData().addContainerResource(new FileResource(new File(./target/classes).toURI()));webAppContext.setConfigurations(new Configuration[] {new AnnotationConfiguration(),new WebXmlConfiguration(),new WebInfConfiguration()});server.setHandler(webAppContext); 此Stackoverflow线程在这里启发了我很多 现在是该文章最后一部分的时候了参数化我们的集成测试。 由于我们要测试验证约束因此有许多要检查的边缘路径并使您的代码覆盖率接近100。 每个案例编写一个测试可能是一个坏主意。 在实用的JUnit解决方案中我最相信实用主义者团队的Junit Params 。 它非常简单并且具有用于创建提供程序的类似于JQuery的帮助程序的概念。 这是我的测试代码我也在这里使用构建器模式来创建各种Todos Test Parameters(method provideInvalidTodosForCreation) public void shouldRejectInvalidTodoWhenCreate(Todo todo) {Response response createTarget().request().post(Entity.json(todo));assertThat(response.getStatus()).isEqualTo(BAD_REQUEST.getStatusCode()); }private static Object[] provideInvalidTodosForCreation() {return $(new TodoBuilder().withDescription(test).build(),new TodoBuilder().withDueDate(DateTime.now()).build(),new TodoBuilder().withId(123L).build(),new TodoBuilder().build()); } OK足够的阅读了随时克隆项目并开始编写REST服务 参考 在我们的JCG合作伙伴 Piotr Jagielski的“ 全栈JVM开发”博客中 在Jersey 2中集成测试自定义验证约束 。 翻译自: https://www.javacodegeeks.com/2014/03/integration-testing-custom-validation-constraints-in-jersey-2.html
http://www.yutouwan.com/news/253048/

相关文章:

  • 发布asp.net网站到虚拟主机广州网站建设的地方推荐
  • 免费给人做网站的wordpress评论表情不显示
  • 在工作室上班网站建设会好吗wordpress 婚庆
  • 做网站和视频剪辑用曲面屏wordpress 底部模板
  • 自行建网站 所需费用微信公众号怎么做预约功能
  • 专业做红木家具网站网站网站 后缀gr
  • 成都网站建设四川冠辰温州公司网址公司
  • 如何在网站网站做代理沈阳网页设计招聘
  • 不花钱可以做网站吗网站建设及推广服务的合同范本
  • 教人做衣服得网站有哪些wordpress数字添加链接
  • 网站建设300元wordpress xss漏洞利用
  • pc网站优化排名软件学做网站要学什么软件
  • 什么网站可以接活在家做越南做彩票网站是违法的吗
  • 写作网站的文风定制型网站建设
  • 17做网店类似网站沈阳seo按天计费
  • 株洲网站制作公司莱芜在线论坛莱芜话题西关规划图
  • 个人建设纪检网站国内出版社网站建设
  • 有了网站源码如何做网页网站右侧分享插件
  • 佛山网站建设哪儿有汽车类网站建设预算
  • 网站免费建立二级目录怎么做网站
  • 如何管理网站老网站如何做301重定向新网站
  • 动画形式的h5在哪个网站做泰州网站建设方案优化
  • 网站地图是怎么做的征求网站建设意见的通知
  • 网站栏目代码id97网站怎么做的
  • 无锡建设工程项目代码申请网站wordpress怎么增加语言
  • 做简历网站商城网站建设制作设计
  • 深圳市光明区住房和建设局网站株洲网站平台搭建
  • 北京东方华美建设集团有限公司网站大型电商网站开发
  • 邢台做网站推广服务xly000.WordPress.cok
  • 嘉兴做微网站wordpress div layer