欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于《数据库篇》《quarkus数据库篇》系列是《quarkus实战》的子系列,目标是与大家一起在quarkus框架下完成常用的数据库操作,如配置、增删改查、事物等本篇概览本篇敢号称比官方demo更简单,是因为官方关于操作数据库的demo中还有web服务的代码(如接收http请求和响应,以及web库的依赖),而本篇不会有这些代码和依赖,只有存粹的数据库操作和对应的单元测试类,至于web服务?欣宸应该会出《quarkus之web篇》吧(如果时间允许)作为《
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的终篇,前面十二篇已覆盖quarkus依赖注入的大部分核心内容,但依然漏掉了一些知识点,今天就将剩下的内容汇总,来个一锅端,轻松愉快的结束这个系列总的来说,本篇由以下内容构成,每个段落都是个独立的知识点几处可以简化编码的地方,如bean注入、构造方法等WithCaching:特定场景下,减少bean实例化次数静态方法是否可以被拦截器拦截?All注解,让多个bean的注入更加直观统一处理异步事件的异常咱们从最简单
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的第十二篇,继续学习拦截器的另一个高级特性:禁用类级别拦截器本篇由以下内容构成编码验证类拦截器和方法拦截器的叠加效果用注解NoClassInterceptors使类拦截器失效总的来说,本篇内容非常简单,就是说清楚NoClassInterceptors注解用在哪里,怎么用,可以轻松愉快的阅读类拦截器和方法拦截器的叠加效果接下来进行编码,看看作用在类上和方法上的两个拦截器的叠加效果,要新建的文件清单如下TrackC
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的第十一篇,之前的[《拦截器》]学习了拦截器的基础知识,现在咱们要更加深入的了解拦截器,掌握两种高级用法:拦截器属性和重复使用拦截器先来回顾拦截器的基本知识,定义一个拦截器并用来拦截bean中的方法,总共需要完成以下三步业务需求设定为了让本篇所学知识点显得有实用型,这里假定一个业务需求,然后咱们用拦截器来满足这个需求假设有个名为SayHello的普通接口,此接口有三个实现类:SayHelloA、SayHello
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的第十篇,来看一个容易被忽略的知识点:bean的懒加载,咱们先去了解quarkus框架下的懒加载规则,然后更重要的是掌握如何改变规则,以达到提前实例化的目标总的来说本篇由以下内容构成关于懒加载编码体验懒加载改变懒加载规则的第一种手段改变懒加载规则的第二种手段(居然和官方资料有出入)小结关于懒加载(LazyInstantiation)CDI规范下的懒加载规则:常规作用域的bean(例如ApplicationSco
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》的第九篇,目标是在轻松的气氛中学习一个小技能:bean锁quarkus的bean锁本身很简单:用两个注解修饰bean和方法即可,但涉及到多线程同步问题,欣宸愿意花更多篇幅与各位Java程序员一起畅谈多线程,聊个痛快,本篇由以下内容组成关于多线程同步问题代码复现多线程同步问题quarkus的bean读写锁关于读写锁java的并发包中有读写锁ReadWriteLock:在多线程场景中,如果某个对象处于改变状态,可以用写
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇是《quarkus依赖注入》系列的第八篇,目标是掌握quarkus实现的一个CDI特性:装饰器(Decorator)提到装饰器,熟悉设计模式的读者应该会想到装饰器模式,个人觉得下面这幅图很好的解释了装饰器模式,左下角的红框是关键点:自己的send方法中,先调用父类的send(也就是被装饰类的send),然后才是自己的业务逻辑quarkus也支持装饰器模式,通过注解Decorator和Delegate实现,今天咱们就通过实战掌握如何在quark
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本篇的知识点是bean的生命周期回调:在bean生命周期的不同阶段,都可以触发自定义代码的执行触发自定义代码执行的具体方式,是用对应的注解去修饰要执行的方法,如下图所示:有两种模式可以实现生命周期回调:拦截器模式和自定义模式,接下来通过编码依次学习拦截器模式《拦截器(Interceptor)》已详细介绍了quarkus拦截器的自定义和使用,包括以下三个步骤如果要自定义bean的生命周期回调,也是遵照上述步骤执行,接下来编码实现首先定义拦截器,名为
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《quarkus依赖注入》系列的第六篇,主要内容是学习事件的发布和接收如果您用过Kafka、RabbitMQ等消息中间件,对消息的作用应该不会陌生,通过消息的订阅和发布可以降低系统之间的耦合性,这种方式也可以用在应用内部的多个模块之间,在quarkus框架下就是事件的发布和接收本篇会演示quarkus应用中如何发布事件、如何接收事件,全文由以下章节构成同步事件异步事件同一种事件类,用在不同的业务场景优化事件元数据同步事件同步事件是指事件发布
欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《quarkus依赖注入》系列的第五篇,经过前面的学习,咱们熟悉了依赖注入的基本特性,接下来进一步了解相关的高级特性,先从本篇的拦截器开始如果您熟悉spring的话,对拦截器应该不会陌生,通过拦截器可以将各种附加功能与被拦截代码的主体解耦合,例如异常处理、日志、数据同步等多种场景本篇会演示如何自定义拦截器,以及如何对bean的方法进行进行拦截,由以下章节构成定义和使用拦截器的操作步骤介绍拦截异常拦截构造方法获取被拦截方法的参数多个拦截器之间