抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

一个生态的发展离不开扩展的繁华,Quarkus 同样可以通过自定义扩展来抽离项目公共模块或提供给其他人使用,本文将从最基本的实现依赖注入讲述如何创建一个 Quarkus 扩展。

一、初始化扩展项目

Quarkus 提供 create-extension Maven Mojo 来初始化您的扩展项目。

mvn io.quarkus.platform:quarkus-maven-plugin:2.11.2.Final:create-extension -N \
    -DgroupId=com.seepine \ 
    -DextensionId=quarkus-xxx \  
    -DwithoutTests 

也可以使用Quarkus Cli创建

quarkus create extension com.seepine:quarkus-xxx

二、编写自己的依赖注入代码

1.in runtime

新建 xxxProducer.java

@ApplicationScoped
public class xxxProducer {
  @Produces
  @Singleton
  @DefaultBean
  public MyCustomService xxxService() {
    return new MyCustomService();
  }
}

2.in deployment

xxxQuarkusProcessor.java 中添加

class QuarkusProcessor{
private static final String FEATURE = "quarkus-xxx";

  @BuildStep
  FeatureBuildItem feature() {
    return new FeatureBuildItem(FEATURE);
  }

  // 这是添加的
  @BuildStep
  AdditionalBeanBuildItem addProducer() {
    return AdditionalBeanBuildItem.builder()
        .addBeanClass(xxxProducer.class)
        .setDefaultScope(DotNames.SINGLETON)
        .setUnremovable()
        .build();
  }
}

三、使用插件

1.引入

implementation 'com.seepine:quarkus-xxx:1.0.0-SNAPSHOT'

2.使用

@Inject MyCustomService myCustomService

评论