自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 01 搭建一个Ubuntu 开发机

Ubuntu 开发机之前一直主要搞Java开发,Python也就自己写写脚本小工具。所以用Windows开发并没有感觉有什么不太方便的,去年换工作之后公司主流开发语言是Python,老项目环境对Windows不友好各种环境问题也是搞的头疼,公司也配了Mac本,配置不高也不喜欢用主要快捷键适应不了,而且Java主要用了Quarkus,虽然启动速度飞快但是打本地镜像速度实在是慢CPU爆满,所以又向公司申请了一台主机,万万没想到公司直接给了一台淘汰的服务器。R7 3700X, 双RTX 2080Ti。。真香!要

2021-05-29 11:37:47 794

原创 13 DB操作 Reactive SQL

在前面几章介绍Hibernate使用的都是传统的同步的JDBC链接,也就是我们的程序并不是完全响应式的。本章介绍一下Quarkus提供的响应式的SQL,不过目前只支持Mysql、Postgresql和DB2。这也是我工作中正在使用的,我们的项目属于基础服务基于ReactiveSQL 和 Grpc 对其它服务提供基础功能。在经过几轮压力测试和线上事故考验后性能表现是非常不错的。1 搭建项目这里以Postgresql为例,pom如下:<dependencies> <depende

2021-05-22 17:55:43 897 1

原创 12 DB操作 Hibernate Panache

很久没有更新了,最近实在是太忙了也有其它的学习计划, 目前同步学习的有Spring的WebFlux和Vertx,工作上还被要求学Clujure。其实对于Quarkus的学习很简单,官网教程写的很清楚使用起来也非常简单。我也是按官网文档来写的,算是提前蹚一下坑吧目前来看文档写的还是很规范的。不过由于Quarkus更新太快了,有些功能或者组件或者组件在版本之间可能会有坑,我们项目上已经出现了= =。好了继承上一篇Hibernate的基本使用教程,本讲主要是Hibernate更高级的封装版本,当然也更加好用了。

2021-05-15 18:00:26 1716

原创 04 WebFlux和SpringMVC有什么区别

04 WebFlux和SpringMVC有什么区别在构建响应式 Web 服务上,Spring 5 中引入了全新的编程框架,那就是 Spring WebFlux。作为一款新型的 Web 服务开发框架,它与传统的 WebMVC 相比具体有哪些优势呢?今天我们就针对这个话题展开讨论。1. WebFlux使用场景WebFlux 用于构建响应式 Web 服务。在详细介绍 WebFlux 之前,我们先梳理一下这个新框架的应用场景,了解应用场景才能帮助我们对所要采用的技术体系做出正确的选择。因为 Reactor

2021-04-10 12:02:22 5073

原创 03-Mono & Flux操作

上一节主要介绍了如何基于Mono和Flux构建一个数据流,Mono是Flux的特例,但大部分API 都是一致的所以重点讲的是Flux。本章将讲Flux和Mono的操作符,如 转换、过滤、异常处理、日志、Debug等一些API。1. bufferbuffer方法相当于将序列中的一部分数据收集到一个集合中,并作为一个新的流元素发送到下游。这里看buffer的重载方法特别多啊,基本功能肯定是一样的只是多了一些附加条件。我们加单示例几种。示例1: 指定收集的元素个数public static void

2021-04-03 17:56:20 3909 3

原创 02-Spring WebFlux Flux和Mono构建响应式数据流

在上一节入门课程中,我们知道 SpringWebFlux 是借助Reactor来实现的。该框架实现了响应式流规范。我们知道在响应式流规范中,存在代表发布者的 Publisher 接口,而 Reactor 提供了这一接口的两种实现,即 Flux 和 Mono,它们是我们利用 Reactor 框架进行响应式编程的基础组件。接下来就简单介绍如何使用这两种实现来创建响应式数据流。1. Flux 代表的是一个包含 0 到 n 个元素的异步序列创建 Flux 的方式非常多,大体可以分成两大类,一类是基于各种工厂模

2021-03-30 11:25:53 3861

原创 11 DB操作 -02 Hibernate 基本使用

Hibernate 相信Java程序员都挺熟悉的了,不过应该国内的程序员都喜欢用MyBatis,老外更喜欢用Hibernate这种ORM框架。目前Quarkus只支持了Hibernate,包括响应式的方式目前也有了实现。本章简单介绍如何整合Hibernate。1 本章目标整合Hibernate实现一个基本的CRUD多数据源如何使用schema管理工具介绍2 搭建项目2.1 引入依赖<dependency> <groupId>io.quarkus<

2021-03-28 11:52:47 631 1

原创 10 DB操作-01 数据库配置

数据源配置从本章开始介绍Quarkus的数据库操作,本章主要讲一下在Quarkus中如何配置数据库,单数据库多数据库或者多异构数据库配置等等。虽然上一个部分的Rest服务还没有讲完,还有一些不常用的框架没有写到,后面慢慢完善。本章目标单数据源配置多数据源配置响应式数据源配置1 基本配置1.1 配置Quarkus 支持两种数据源配置:JDBC: JDBC数据源使用的连接池是 Agroal。Reactive : 使用的Vert.x的数据库驱动实现。JDBC的配置如下:qua

2021-03-21 14:25:05 750 3

原创 09-搭建Rest服务 - 05 OpenApi & SwaggerUI

OpenApi & SwaggerUIOpenAPI 规范(OAS)定义了一个标准的、语言无关的 RESTful API 接口规范,它可以同时允许开发人员和操作系统查看并理解某个服务的功能,而无需访问源代码,文档或网络流量检查(既方便人类学习和阅读,也方便机器阅读)。正确定义 OAS 后,开发者可以使用最少的实现逻辑来理解远程服务并与之交互。Swagger UI 是一个接口文档工具,它遵循Open Api接口规范。这里这里的Swagger UI 跟我们在Spring中使用的并无太大差别,只是功能

2021-03-14 11:23:11 572

原创 08-搭建Rest服务 - 04权限管理

Using JWT RBACjwt和RBAC 相信大家都已经有理解,本章就直接看一下Quarkus框架下如何使用JWT 实现权限校验。本章目标创建项目实现一个简单的角色校验如何生成和校验 Jwt Token自定义校验1 创建项目本章只以简单的Rest 服务来验证权限校验,不涉及数据库操作。1.1 加入如下依赖:<dependency> <groupId>io.quarkus</groupId> <artifactId&gt

2021-03-13 21:46:05 3379

原创 07- 搭建Rest服务-03 Rest Client

Rest Client同样我们的服务也会有调用其它第三方服务,或者我们系统内的其它微服务的需求,Quarkus提供了对Http Rest 调用的封装。这比我们直接使用HttpClient 或者 OkHttp 等Http客户端插件简单一些。类似于Spring Cloud中 RestTemplate 或者 Feign的封装功能。本章目标搭建Rest clietRest Client 异步支持Rest Client MultiPart支持1 搭建Rest Client 项目<depen

2021-02-28 16:17:53 683

原创 06-搭建Rest服务-02 参数校验

Validator & Rest Client       作为一个web服务对参数的校验是必不可少的,这节我们将介绍Hibernate Validator 在Quarkus中的使用。同样我们的服务也会有调用其它第三方服务,或者我们系统内的其它微服务的需求,Quarkus提供了对Http Rest 调用的封装。这比我们直接使用HttpClient 或者 OkHttp 等Http客户端插件简单一些。类似于Spring Cloud中 RestTemplate 或

2021-02-28 12:02:16 390

原创 05-Quarkus 搭建Rest服务-01

Rest services从本篇文章开始讲如何使用Quarkus搭建Web服务,如搭建REST 服务、参数校验、过滤器、拦截器、权限角色、API文档、异步路由等等。本章目标1.搭建一个REST服务2.定义一个接口3.访问上下文4.阻塞和非阻塞模式5.全局异常处理6.过滤器7.请求和响应值封装8.拦截器9.参数转换1. 搭建一个REST 服务在我们前面的文章中就应经使用了Quarkus的Web服务,在以前的代码中我们引入了quarkus-resteasy这个依赖是JAX-R

2021-01-30 11:05:07 1548

原创 01-Spring WebFlux 入门

1. Spring 响应式Web框架 介绍之前已经写过几篇文章介绍了全新的响应式框架Quarkus,框架本身性能和社区支持都很不错。但是总觉的没有Spring用的上手。在之前一直使用Spring作为主要的技术栈,但都是一些同步的框架,如 WebMvc,Mybatis以及各种组件等。Spring提供的异步框架一直没有用过,所本专题讲开始写一些Spring提供的响应式框架。Spring 对响应式的说明响应式系统具有某些特性使它们成为低延迟、高吞吐量工作负载的理想选择。Project Reactor和Spr

2021-01-23 11:06:12 356

原创 04-Native模式和单元测试

Naitive 和 TestingQuarkus 与当前流行的Java应用的区别是提供了基于GraalVM实现的本地镜像模式,使用这种方式才能发挥Quarkus的最大优势。当前并不是说JVM不行,在我们的压测中JVM模式的QPS竟比Native模式要高,说明我们对于Native的优化还没有到位= =Quarkus 同样提供了基于Junit的单元测试,并提供了Native模式下的实现。本章将会讲这两部分,Native模式同样也会基于容器运行,如docker、OpenShift容器模式后面再讲。本章目标

2021-01-17 14:13:43 1052

原创 03-CDI-Quarkus的DI解决方案

Contexts and Dependency Injection (CDI)简单来讲就是Quarkus 基于 Java JSR CDI标准的实现。类似于Spring中的Bean的管理,如果事先用过Quarkus的话就会发现,在使用Quarkus中总有点Spring的味道。今天先看一下Quarkus中CDI的基本功能。本章目标1.Quarkus中的Bean是什么样子的。2.如果有多个相同类型的bean如何处理。3.Bean的注入方法有哪些。4.什么是qualifiers。5.bean sc

2020-12-20 15:54:09 775

原创 02-Quarkus-Multi和Uni

Quarkus Reactive API我们上一章创建了一个简单的HelloWorld项目,非常的简单并没有什么响应式编程的内容,既然Quarkus是支持响应式编程的,那我们今天先看一下Quaruks提供的响应式编程API。本章目标:学习使用Quarkus实现的响应式编程库io.smallrye.mutiny.Uniio.smallrye.mutiny.Multi一 Quarkus 框架响应式处理原理由上图可以看到Quarkus底层是由Vertx来调度应用的请求处理和响应,无

2020-12-05 18:33:38 2610 1

原创 01-Quarkus 入门

一 Quarkus 是什么?Quarkus 是一个为 Java 虚拟机(JVM)和原生编译而设计的全堆栈 Kubernetes 原生 Java 框架,用于专门针对容器优化 Java,并使其成为无服务器、云和 Kubernetes 环境的高效平台。Quarkus 可与常用 Java 标准、框架和库协同工作,例如 Eclipse MicroProfile、Apache Kafka、RESTEasy(JAX-RS)、Hibernate ORM(JPA)、Spring、Infinispan、Camel 等。Qu

2020-11-28 16:12:23 2350

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除