抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

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

一、初始化扩展项目

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

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

也可以使用Quarkus Cli创建

1
quarkus create extension com.seepine:quarkus-xxx

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

1.in runtime

新建 xxxProducer.java

1
2
3
4
5
6
7
8
9
@ApplicationScoped
public class xxxProducer {
@Produces
@Singleton
@DefaultBean
public MyCustomService xxxService() {
return new MyCustomService();
}
}

2.in deployment

xxxQuarkusProcessor.java 中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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.引入

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

2.使用

1
@Inject MyCustomService myCustomService

评论