Quarkus和RESTEasy团队非常高兴地宣布了Quarkus中的RESTEasy Reactive集成已进入master分支,并将成为下一个Quarkus 1.11发行版的一部分。我们期待每个人对其进行测试。并为我们提供尽可能多的反馈。以典型的Quarkus方式,该项目可作为一组新的扩展使用。这是一个非常令人兴奋的消息,所以博主用自己蹩脚的英语+google翻译翻译了官方的公告,迫不及待的想要和大家分享。
Quarkus 2.8.0.Final发布,特性包括:将RESTEasy Reactive作为默认 REST 层;将 GraalVM 22.0 作为默认版本;新的QuarkusTransaction API;以及 Elasticsearch Dev Services(可以自动启动dev和test模式的 Elasticsearch 容器)。此外,由于存在二进制兼容性不可靠问题,AssertJ被从 Quarkus BOM 中删除。开发人员需要在他们的应用程序中明确指定 AssertJ 3.22.0
Quarkus使用Mutiny模型提供了许多反应API。在本节中,我们将了解如何使用反应式PostgreSQL驱动程序以非阻塞和反应式的方式与数据库交互。
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《支持JDK19虚拟线程的web框架》系列文章链接 支持JDK19虚拟线程的web框架,之一:体验 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用 支持JDK19虚拟线程的web框架,之三:观察运行中的虚拟线程 支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程 支持JDK19虚拟线程
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是《支持JDK19虚拟线程的web框架》系列的中篇,前文咱们体验了有虚拟线程支持的web服务,经过测试,发现性能上它与其他两种常见web架构并无明显区别,既然如此,还有必要研究和学习吗? 当然有必要,而且还要通过实战更深入了解虚拟线程与常规线程的区别,在各大框架和库广泛支持虚拟线程之前,打好理论和实践基础,这才是本系列的目标 为了接下来的深入
从效果上来看SpringBoot3.0和Quarkus要做的事情是相同的,但是SpringBoot3.0毕竟会有很多历史包袱,很多标准规范在Spring中是通过适配的方式来实现的,
在传统的单体架构中,应用程序已经通过静态主机名、IP 地址和端口知道后端服务的存在位置。IT运维团队为服务可靠性和系统稳定性维护静态配置。自从微服务开始在分布式网络系统中运行以来,其维护发生了显著变化。之所以发生这种变化,是因为微服务需要与多个后端服务进行通信,以提高负载均衡和服务弹性。
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demo 本篇概览 本文是《quarkus实战》系列的第五篇,一起去熟悉quarkus的maven插件(就是下图红框中的那个plugin),用好它可以使我们更加得心应手的在项目中配置和控制quarkus 📷 插件quarkus-maven-plugin提供了丰富的功能,它们都有对应的命令,执行mvn quarkus:xxx即可执行,其中xxx就是具体的命令,例如mvn qu
官方网站用的是 PostgreSQL , 这里改成了MySQL,其他不变 选择依赖:
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于虚拟线程 随着JDK19 GA版本的发布,虚拟线程(来自Project Loom)这一特性也闪亮登场,虚拟线程是 JDK 而并非OS 实现的轻量级线程(Lightweight Process,LWP),许多虚拟线程共享同一操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量(可以参考golang的协程) 虚拟线程方面的文章,如今已经有很多优秀博主写
JEP 466(类文件 API (第二次预览))已从 Candidate 进入到 Proposed to Target 状态。该 JEP 提议进行第二轮预览,以获取来自之前一轮预览的反馈,即 在 JDK 22 中发布的 JEP 457(类文件 API (预览))。该特性提供用于解析、生成和转换 Java 类文件的 API。这将先作为 ASM (在 JDK 中 ASM 是 Java 字节码操作和分析框架)的内部替代方案,并计划在后续将其开放为公共 API。Goetz 将 ASM 描述为“一个带有大量遗留负担的老代码库”,并提供了背景信息,说明该提议将如何发展并最终取代 ASM。
最近,Red Hat 开源了 Quarkus 1.0 项目,这标志着其在为 Kubernetes 提供 Java 实例上取得了一个里程碑。
Quarkus中的web模块是基于java标准web规范jax-rs构建的,实现则选用了jboss的resteasy。这部分只是请求路由转发部分实现。真正的请求接收则使用了eclipse开源的vert.x框架,底层也是基于netty的一个响应式开发框架。Quarkus将vert.x和resteasy集成在了一起,所以支持响应式和非响应式应用混合开发,这也是Quarkus的一大卖点。基于以上的认知,我们来看看在Quarkus中,怎么写过滤器和解决跨域的问题
本期的 Java 新闻主要会介绍 OpenJDK、JDK 19、Jakarta EE 10 的新特性,对 Spring Cloud 子项目的更新,Amazon Corretto 为 OpenJDK 17 所提供的异步、缓冲日志,Quarkus 2.7.4.Final,Hibernate ORM 6.0.0.CR2,Apache Groovy 3.0.10 与 2.5.16,Apache Camel 3.14.2,JReleaser 早期访问版本,JobRunr 4.0.10,JDKMon 17.0.23 和 FailSafe 3.2.3。
Quarkus是为GraalVM和HotSpot量身定制的Kubernetes Native Java框架,由最佳的Java库和标准精心打造而成。Quarkus的目标是使Java成为Kubernetes和无服务器环境中的领先平台,同时为开发人员提供统一的反应式和命令式编程模型,以优化地满足更广泛的分布式应用程序架构。
Java 近期新闻综述,涉及来自 OpenJDK、JDK 19 的 JEPs、Lilliput 项目的里程碑版本、Spring Framework 5.3.20 和 5.2.22、Open Liberty 22.0.0.5 和 22.0.0.6-beta、Quarkus 2.9.0.Final、Apache Camel Quarkus 2.9.0、WildFly Preview 27 Alpha1、Hibernate Search 6.1.5、JobRunr 5.1.1、Piranha 22.5.0、Failsafe 3.2.4 等的特性,以及 Micronaut 的调查结果和 Devoxx UK 会议。
2022 年 1 月 31 日的 Java 每周新闻综述,主要介绍了 OpenJDK(JEP 423)、JDK 18、JDK 19、Loom 项目 Build 19-loom+3-89、Spring Framework 更新、Quarkus 2.7.0. Final、一个新的 Micronaut Serialization 模块、Apache Camel Quarkus 2.7.0、Apache Camel 3.15.0、JReleaser 第二个早期访问构建、JobRunr 4.0.7 和 4.0.8 版本以及 Failsafe 3.2。
作为一个Java开发者,Spring框架应该基本上都用过的,由于Spring框架太过于强大,导致我们可能只知道Spring框架,但其实还有很多优秀的框架可以供我们使用,本文将介绍6个和spring框架类似的框架。
作者 | Michael Redlich 译者 | 张卫滨 策划 | 丁晓昀 本期的 Java 新闻包括 JDK 19、OpenJDK、Jakarta EE 10、Spring 里程碑和小版本升级以及 CVE、Payara 平台发布、Quarkus 2.9.1.Final、Micronaut 3.4.4、WildFly 16.1.1、Hibernate ORM 5.6.9.Final、Hibernate Reactive 11.5.Final、JDKMon 17.0.25、JobRunr 5.1.
Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,目前已迭代到1.6.0版本,已完成了大部分的框架库的集成扩展,为了让你低成本迁移到Quarkus来,它兼容主流的框架开发模式api,如spring web。Quarkus已具备企业级应用开发能力。而且未来容器云肯定是主流了,可以预见,未来的软件都是运行在k8s这样的容器集群里。而容器环境需要应用具备启动速度快,资源占用小,响应时间短等特性,Quarkus就是顺应这种趋势而生的。博主接下来的项目估计都会使用这个框架来开发,相关的问题都会记录在这个博客,这篇博文是个开篇。有感兴趣的欢迎一起来交流。
作者 | Alex Soto 译者 | 张卫滨 策划 | 丁晓昀 为何需要微服务特性? 在微服务架构中,应用程序是由多个相互连接的服务组成的,这些服务协同工作以实现所需的业务功能。 所以,一个典型的企业级微服务架构如下所示: 最初,我们可能认为使用微服务架构实现一个应用程序是很容易的事情。但是,要恰当地完成这一点并不容易,因为我们会面临一些新的挑战,而这些挑战是单体架构所未曾遇到的。举例来讲,这样的挑战包括容错、服务发现、扩展性、日志和跟踪等。 为了应对这些挑战,每个微服务都需要实现在 R
作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 Java 近期新闻综述,内容主要涉及 OpenJDK、JDK 19、JDK 20、Spring 点版本、GlassFish 7.0.0-M6、GraalVM Native Build Tools 0.9.12、Micronaut 3.5.2、Quarkus 2.10.0、Reactor 2022.0.0-M3、Apache Camel Quarkus 2.10.0 及 Apache Tika 2.4.1 版本和 1.28.
作者 | Michael Redlich 译者 | 屠灵 策划 | 丁晓昀 JDK 18 更新、Loom 18-loom+4-273 构建版、Spring Framework 和 Spring Data 单点版本、Quarkus 2.4.2.Final、Hibernate Reactive 1.1.0.Final、Piranha 21.11.0、Groovy 4.0.0-beta-2、Apache Camel Quarkus 2.4.0.Final、Neo4J Migration 1.0.0、苹果公
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第四篇,如标题所示,今天的任务是完成远程热部署实战 作为一名Java程序员,以下场景相信您很熟悉: 在本地电脑上:用IDEA写代码,编译构建成jar或者docker镜像 在服务器上:运行jar或者docker镜像 遇到问题时:通过热部署,使本地的改动立即在服务器上生效,这一切都是自动的,无需打包部署等操作 就是下图这
Java 近期新闻综述,内容主要涉及 OpenJDK、JEP 426、JDK 19、Jakarta EE 10 更新、Spring Framework 点版本、CVE-2022-22968、Quarkus 2.8.0、Open Liberty 22.0.0.4 和 22.0.0.5-beta、Micronaut 3.4.2、WildFly 26.1、Eclipse GlassFish 7.0-M4、Piranha 22.4.0、Apache Camel Quarkus 2.8.0、IntelliJ IDEA 2022.1、Ktor 2.0 和 Devnexus 2022 大会。
作者 | Michael Redlich 译者 | 刘雅梦 策划 | 丁晓昀 Java 近期新闻包括:JDK 19 进入 Rampdown 第一阶段;JDK 20 专家组成立;Spring Shell 2.1.0-M5、Open Liberty 22.0.0.6 和 22.0.0.7-beta、Quarkus 2.10.0.CR1、Apache Groovy 4.0.3、 Eclipse Mojarra 4.0、Helidon 2.5.1 的特性;以及 JNation 会议。 JDK 19 JDK 19 早
Quarkus 是一个目前非常火的 Java 应用开发框架,定位是轻量级的微服务框架。,Quarkus 提供了优秀的容器化整合能力,相较于传统开发框架(Spring Boot)有着更快的启动速度、更小的内存消耗、更短的服务响应。
2022 年 2 月 7 日的 Java 每周新闻综述,内容主要涉及 OpenJDK、JDK 18、JDK 19、JSR 381 获 JCP 批准、Payara Platform 2022 路线图、 Quarkus 2.7.1、Helidon 2.4.2、Micronaut 3.3.1、Hibernate Search 6.1.1、Hibernate Reactive 1.1.3.Final、JReleaser Early-Access、Failsafe 3.2.1、Kotlin 1.6.20-M1、Gradle 7.4、Apache Tika 2.3.0 及 Apache Tika 1.x 发布序列终结。
做java web开发,文件的上传和下载是一个非常常见的需求场景。在spring生态下的文件上传下载非常简单,记得五年前,我刚写博的时候也写过spring的上传和下载《SpringMvc实现文件上传与下载》,以及Struts2的文件上传和下载《java Struts2实现文件上传下载》。今天来看看Quarkus框架中是如何实现的,因为Quarkus的JAX-RS采用Resteasy的实现,故Quarkus中的文件上传和下载,也就是Resteasy框架的上传和下载了。
作者 | Michael Redlich 译者 | 张卫滨 策划 | 丁晓昀 本期的 Java 新闻包括 JDK 19、JDK 20、Spring 框架的更新、Spring Cloud 与 Spring Tools、Helidon Níma、MicroProfile Reactive 规范、Quarkus 2.12.2、MicroStream 7.1.0、Reactor 项目 2022.0.0-M6、Hibernate Search 6.1.7、JHipster Lite 0.15.1、Piran
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文咱们曾提到过几种启动方式,有一种用maven命令启动的,可以进入开发模式,命令如下: mvn quarkus:dev 当时只提到此模式能看到详细系统信息,并未展开说明更多信息,实际上,此模式下还有很多实用的功能 作为《quarkus实战》系列的第三篇,今天咱们一起来学习开发模式(Development mode),这是quarkus为开发者准备的实
这个开源项目是一个自学计算机科学的免费路径。它提供了一套完整的在线教育材料,旨在为那些希望获得全面、扎实基础和良好习惯的人们提供支持。该课程按照本科计算机专业要求设计,并且选取了来自哈佛大学、普林斯顿大学、麻省理工等高校最优质的课程。
备注:我的mac和ubuntu上的IDEA都没见到这个选项,难道我装了两个假的IDEA?
在学习一个新的框架技术前,肯定要先来一套hello word,搭建基本的运行环境和调试环境。今天来创建一个Quarkus的应用
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第七篇,前文讲述了如何在将配置信息传入quarkus应用,今天要练习的是如何使用这些配置信息 整篇文章由以下内容构成: 创建工程,作为演示使用配置项操作的代码 演示最基本的使用配置项操作 展示配置项不存时会导致什么问题 演示如何设置默认值,这样配置项不存在也不会出错 默认值是字符串,而实际的变量可以是多种类型,它们之间
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于bean的作用域(scope) 官方资料:https://lordofthejars.github.io/quarkus-cheat-sheet/#_injection 作为《quarkus依赖注入》系列的第二篇,继续学习一个重要的知识点:bean的作用域(scope),每个bean的作用域是唯一的,不同类型的作用域,决定了各个bean实例的生命周期,例
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第六篇,咱们来掌握一个常用知识点:配置 如同SpringBoot中的application.properties文件,对一个quarkus应用来说,配置是其重要的组成部分,web端口、数据库这些重要信息都放在配置中,咱们在编码时也会将一些业务参数做成配置,而不是硬编码(hard code) 与配置有关的知识点不少,本文
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于依赖注入 对一名java程序员来说,依赖注入应该是个熟悉的概念,简单的说就是:我要用XXX,但我不负责XXX的生产 以下代码来自spring官方,serve方法要使用MyComponent类的doWork方法,但是不负责MyComponent对象的实例化,只要用注解Autowired修饰成员变量myComponent,spring环境会负责为myCompon
Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器、云和 Kubernetes 环境的高效平台。
作者 | Michael Redlich 译者 | 马可薇 策划 | 丁晓昀 OpenJDK Oracle 公司研究总监 Doug Simon,提议 Galahan 新项目的创建,该项目主要目标是为向 OpenJDK 社区贡献与 Java 相关的 GraalVM 技术,并做好将其添加至 JDK 主要版本的准备。更多细节请参见 InfoQ 的这篇详尽新闻报道。 JDK 20 JDK 20,Build 28 的早期访问版本已于上周发布,提供对 Build 26 的更新及多个问题修复。关于该版本
作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 本期 Java 近期新闻综述内容主要涉及 OpenJDK、JDK 19、虚拟线程、Java 满 27 岁、Jakarta EE 10、Spring Framework 点版本和里程碑版本、Micronaut 3.5.0、Quarkus 2.9.2.Final、Quarkus Tools for IntelliJ 1.11.0、Hibernate ORM 6.0.2.Final、Apache Tika 1.28.3 和 Sp
KevinTen,携程后端开发工程师,关注Reactive和RPC领域,深度参与开源社区,对Reactive技术有浓厚兴趣。
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇的知识点是bean的生命周期回调:在bean生命周期的不同阶段,都可以触发自定义代码的执行 触发自定义代码执行的具体方式,是用对应的注解去修饰要执行的方法,如下图所示: 📷 有两种模式可以实现生命周期回调:拦截器模式和自定义模式,接下来通过编码依次学习 拦截器模式 《拦截器(Interceptor)》已详细介绍了quarkus拦截器的自定义和使用,
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus实战》系列的第八篇,经过前面的学习,咱们对配置有了足够了解,但问题也随之而来:如何让应用以最小的改动同时运行在不同环境(如本地、测试、生产等) 举个例子,下面是个简化版配置文件,有两个配置项,第一个固定不变,第二个随环境变化各不相同: # 这个配置信息在各个环境中都是相同的 greeting.message=hello # 这个配
既然是一个 java 应用,那应该是无需什么准备的,jdk,maven 这些都有了。
作者 | Michael Redlich 译者 | 平川 策划 | 丁晓昀 OpenJDK Oracle 内部 Java 平台小组主任工程师 Joe Darcy 提议,在 JDK 20 中放弃支持 javac 命令行选项 -source/-target/--release 7 。Darcy 引用 JEP 第 182 条:javac 的 -source 及 -target 退休策略,讨论老版本 JDK 的继续支持时间范围。目前反馈主要在 Maven 编译器插件依旧默认使用 1.7 版的问题上。Or
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《quarkus依赖注入》系列的第五篇,经过前面的学习,咱们熟悉了依赖注入的基本特性,接下来进一步了解相关的高级特性,先从本篇的拦截器开始 如果您熟悉spring的话,对拦截器应该不会陌生,通过拦截器可以将各种附加功能与被拦截代码的主体解耦合,例如异常处理、日志、数据同步等多种场景 本篇会演示如何自定义拦截器,以及如何对bean的方法进行进行拦截
领取专属 10元无门槛券
手把手带您无忧上云