Netflix开源GraphQL框架DGS介绍

Netflix开源GraphQL框架DGS介绍

相关技术 3年前 (2021-03-22) 浏览: 1862 评论: 0

Netflix开源了领域图形服务 Domain Graph Service (DGS)框架,DGS简化了框架的独立性和联合GraphQL服务的实现。 通过开源项目,希望对Java和GraphQL社区做出贡献,并向所有使用该框架的人学习和合作,使其变得更好。 DGS框架的主要功能包括: 基于注解的Spring-Boot编程模型 将查询测试编写为单元测试的测试框架 Gradle代码生成插件,可以从Gr

Spock注意事项

Spock注意事项

Spock系列 4年前 (2020-08-20) 浏览: 1861 评论: 2

Spock虽然好用,但要应用到实际项目中还是需要注意几个问题,下面讲下我们公司在使用过程中遇到的一些问题和解决方案 版本依赖 要使用Spock首先需要引入相关依赖,目前使用下来和我们项目兼容的Spock版本是1.3-groovy-2.5,以maven为例(gradle可以参考官网),完整的pom依赖如下: <spock.version>1.3-groovy-2.5</spock.

Kafka和Pulsar该如何选择?

Kafka和Pulsar该如何选择?

相关技术 3年前 (2021-05-18) 浏览: 1838 评论: 0

Apache Kafka为大规模分布式消息传递设置了标准,但是Apache Pulsar有自己的一些巧妙技巧 如今,大规模可伸缩的发布/订阅消息传递实际上是Apache Kafka的同义词。Apache Kafka仍然是分布式流媒体应用程序的坚定的、开源的首选,无论您是添加apache storm或apache spark之类的东西进行处理,还是使用Apache Kafka本身提供的处理工具。但K

如何在eclipse中配置tomcat

如何在eclipse中配置tomcat

Java系列 3年前 (2021-02-19) 浏览: 1793 评论: 0

在本文中,我们将了解如何在eclipse中配置Tomcat,以及如何配置Tomcat来部署web应用程序。 Tomcat简介 Tomcat实际上由许多组件组成,包括tomcatjsp引擎和其他连接器,但是主要组件是Catalina,它提供了servlet规范的实现。当启动Tomcat服务器时,实际上是Catalina在启动。变量CATALINA_HOME是存储CATALINA文件位置的配置属性。

使用JCTools实现Java并发程序

使用JCTools实现Java并发程序

Java系列 3年前 (2021-03-17) 浏览: 1779 评论: 0

  概述 在本文中,我们将介绍JCTools(Java并发工具)库。 简单地说,这提供了许多适用于多线程环境的实用数据结构。 非阻塞算法 传统上,在可变共享状态下工作的多线程代码使用锁来确保数据一致性和发布(一个线程所做的更改对另一个线程可见)。 这种方法有许多缺点: 线程在试图获取锁时可能会被阻塞,在另一个线程的操作完成之前不会取得任何进展—这有效地防止了并行性 锁争用越重,JVM处理

Spock小结

Spock小结

Spock系列 4年前 (2020-08-20) 浏览: 1780 评论: 0

前面的几篇文章介绍了Spock的各种语法,和power mock的结合,以及注意事项,这篇做个总结,让大家对Spock有个全面客观的了解 Spock优点 遵循BDD模式、功能强大、语义规范、可读性好、易于维护、富有表现力 更灵活的控制测试行为,专注代码的逻辑测试而不是书写语法上 用自然语言描述测试步骤(非技术人员也能看懂测试用例) 兼容mock框架,可以和项目中的java单测代码共存,降低迁移成本

如何在IntelliJ IDEA调试异步代码

如何在IntelliJ IDEA调试异步代码

相关技术 11个月前 (05-22) 浏览: 1775 评论: 1

开启异步堆栈跟踪:Settings -> Build, execution, deployment -> Debugger -> Async stack traces -> Instrumenting agent 调试异步代码是一个挑战,因为任务通常在一个线程中调度,在另一个线程执行。每个线程都有自己的堆栈,因此很难弄清楚线程启动之前发生了什么。 IntelliJ IDEA

Java9模块化指南

Java9模块化指南

Java系列 3年前 (2021-01-23) 浏览: 1769 评论: 0

1. 概述 Java9在包之上引入了一个新的抽象级别,正式称为Java平台模块系统(JPMS),简称“模块”。 在本文中,我们将介绍新系统并讨论其各个方面。 2. 什么是模块? 首先,我们需要先了解模块是什么,然后才能了解如何使用它们。 模块是一组密切相关的包和资源以及一个新的模块描述符文件。 换句话说,它是一个“Java包的包”的抽象,允许我们使代码更加可重用。 2.1 Packages 模块中

Jackson的snake-case反序列化为骆驼命名法

Jackson的snake-case反序列化为骆驼命名法

Java系列 2年前 (2022-07-06) 浏览: 1763 评论: 0

JSON对象中的字段名可以有多种格式。当我们想将它们加载到POJO中时,我们可能会遇到一个问题,即Java代码中的属性名称与JSON中的命名约定不匹配。 在这篇文章中,我们将看到如何使用Jackson将snake-case JSON反序列化为camel-case字段。 安装Jackson 让我们从将Jackson依赖项添加到pom.xml文件: <dependency> <gro

java8 stream和Parallel Streams使用注意事项

java8 stream和Parallel Streams使用注意事项

Java系列 3年前 (2021-04-13) 浏览: 1744 评论: 0

当java8的第一个早期access版本出现时,最重要的演变似乎是lambdas。这一点现在正在改变,许多开发人员现在似乎认为流是最有价值的Java8特性。这是因为他们相信通过改变程序中的一个单词(用parallelStream替换stream),他们将使这些程序并行工作。许多Java8的传道者已经展示了这方面的惊人例子。这有什么问题吗?不,不是什么。很多事情: 并行运行可能是一个好处,也可能不是

新版JDK中的垃圾收集器:Shenandoah、ZGC和改进的G1

新版JDK中的垃圾收集器:Shenandoah、ZGC和改进的G1

Java系列 3年前 (2021-09-27) 浏览: 1743 评论: 0

ZGC、Shenandoah和G1中的改进使开发人员比以往任何时候都更接近无暂停时间。 在过去的六个月中,一些最令人兴奋的发展是JDK垃圾收集器(GC)的不断发展,首先,我们将介绍Shenandoah,它是一种低延迟GC,主要与应用程序同时运行;我们还将介绍作为jdk12部分的ZGC(java11在引入并发GC时的低延迟)的最新改进;我们将详细解释Java9 Start作为G1默认GC的两个改进。

在Kubernetes上部署Spring Boot微服务实践

在Kubernetes上部署Spring Boot微服务实践

微服务 3年前 (2021-09-28) 浏览: 1696 评论: 0

尽管这篇文章讨论了Spring Boot应用程序,但所讨论的概念适用于任何微服务应用程序。 您想知道如何在Kubernetes上部署微服务吗?Kubernetes是运行微服务应用程序最流行的选择? 让我们开始: 什么是Kubernetes? Kubernetes允许我们在公共、私有或混合云基础设施中部署容器化微服务应用程序。Kubernetes是一个开源容器编排平台。Kubernetes的一些重要

Java递归函数讲解

Java递归函数讲解

Java系列 4年前 (2020-10-01) 浏览: 1700 评论: 0

Java中的递归 什么是递归? 函数直接或间接调用自身的过程称为递归,相应的函数称为递归函数。使用递归算法,某些问题可以很容易地解决。这类问题的例子有Hanoi的Towers(TOH)、序/前序/后序树遍历、图的DFS等。 递归中的基本条件是什么? 在递归程序中,给出了基本情况的解,大问题的解用小问题表示。 int fact(int n) { if (n < = 1) // base cas

Quarkus|云原生时代的Java框架

Quarkus|云原生时代的Java框架

相关技术 3年前 (2021-08-15) 浏览: 1662 评论: 0

在这个数字第一的时代,技术发展更快。它帮助技术人员开发和部署更快、更面向性能、更高效和更低内存消耗的应用程序。Quarkus是RedHat的一项此类计划。它是由RedHat设计和开发的,考虑到cloud-native、serverless和容器化应用程序的未来。 根据RedHat的定义:“Quarkus是一个完整的堆栈,Kubernetes原生Java框架,用于Java虚拟机(JVM)和本机编译,

Spock单元测试高级语法-groovy闭包

Spock单元测试高级语法-groovy闭包

Spock系列 3年前 (2021-06-15) 浏览: 1625 评论: 0

叫"高级语法"有点言过其实了,标题党嫌疑。主要是针对我们业务代码中一些比较特殊的场景可以考虑使用。 先简单说下Groovy的闭包概念,官方定义: Groovy中的闭包是一个开放,匿名的代码块,可以接受参数,返回值并分配给变量 语法如下: { [closureParameters -> ] statements } 其中[closureParameters->]代表参数,多个参数用逗号分

JVM元空间metaspace的内存结构

JVM元空间metaspace的内存结构

爪哇岛 4年前 (2020-09-13) 浏览: 1609 评论: 0

我们深入研究元空间的架构。我们描述了各个层和组件,以及它们是如何协同工作的。 这对那些想要破解hotspot和Metaspace或者至少真正理解内存的去向以及为什么我们不能仅仅使用malloc的人来说是很有趣的。 与大多数其他非平凡的分配器一样,元空间是在层中实现的。 在底部,内存是在操作系统的大区域中分配的。在中间,我们将这些区域分割成不太大的块,然后交给类装入器。 在顶部,类装入器将这些块分割

基于GraalVM构建的Flowable+SpringBoot本地镜像

基于GraalVM构建的Flowable+SpringBoot本地镜像

Serverless 3年前 (2021-05-27) 浏览: 1593 评论: 0

GraalVM是一个来自Oracle的JDK,它有一些非常有趣的技术,包括社区版和企业版。在某些工作负载上更快的运行时间,进行多语言编程的有趣方法,以及本文的重点:将Java应用程序编译为本机映像。这样一个本机映像是一个优化的二进制文件,它包含了在特定环境下运行Java应用程序所需的一切—它是针对特定系统编译的,以便本机运行。它包含在构建时计算的最小类集,并且启动速度非常快,因为它不会遭受初始化常

如何使用Eclipse内存分析器MAT来查找类加载器泄漏

如何使用Eclipse内存分析器MAT来查找类加载器泄漏

爪哇岛 4年前 (2020-09-23) 浏览: 1578 评论: 0

你可能是因为您的javaweb应用程序在java.lang.OutOfMemoryError:PermGen space(或java.lang.OutOfMemoryError:Metaspace,如果您使用Java 8)。我不会解释这个错误意味着什么,也不会解释它发生的原因,因为网上有很多关于它的信息——例如,请参阅Frank Kieviet关于这个问题及其解决方案的博客。 在第一篇文章中,我将

Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock注意事项:使用PowerMock对JDK系统类mock时不兼容问题

Spock系列 3年前 (2021-06-21) 浏览: 1566 评论: 0

如果你在Spock中使用powermock去mock掉jdk类的静态方法,可能会出现powermock不兼容的问题(感谢"有1024个人"这位朋友的反馈,原文见之前这篇文章的评论:https://javakk.com/281.html)。 比如有下面这个要测试的类,里面调用了java.util.Calendar获取当前的年份,其他代码会调用这个方法,我们可能需要对返回的年份进行mock来测试不同的

提高正则表达式性能的几点建议

提高正则表达式性能的几点建议

Java系列 2年前 (2022-08-22) 浏览: 1550 评论: 0

当正则表达式通常与大型数据集相匹配时它们的编写必须高效。 为什么正则表达式效率很重要? 虽然写得好的正则表达式可能非常有效,但写得不好的正则表达可能需要很长时间才能运行,并且会显著降低系统的速度。编写一个需要数小时或数天才能完成的正则表达式是很有可能的,甚至可以编写一个在宇宙生命周期内无法完成的正则表达,因为它是针对中等大小的字符串运行的。 在实践中已经做了一些改进,使其比以前的版本更能抵抗低效的

登录

忘记密码 ?

切换登录

注册