安装
安装依赖, 初始化项目
项目结构:
|-- order
|-- build.gradle
|-- gradle.properties
|-- settings.gradle
|-- order-app 启动器, 引入订单和其他包
| |-- build.gradle
| |-- src
| |-- main
| |-- java
| | |-- demo.gp.order
| | |-- App.java 启动类
| |-- resources
| |-- application.conf 配置文件
|-- order-package 订单包
| |-- build.gradle
| |-- src
| |-- main
| |-- java
| | |-- demo.gp.order
| | |-- package-info.java package-info所在目录作为包名
| |-- resources
| |-- graphql
| |-- order.gql 定义订单相关类型
|-- other-package 可根据需求可以加入其他包
|-- build.gradle
|-- src
|-- main
|-- java
| |-- demo.gp.other
| |-- package-info.java
|-- resources
|-- graphql
|-- other.gql 定义其他相关类型
配置模块(Package)
1. 引入依赖与 Gradle 插件
order-package/build.gradle
buildscript {
repositories {
jcenter()
}
}
plugins {
id 'java-library'
id "org.graphoenix" version "0.1.1"
}
classes {
dependsOn generateGraphQLSource
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation 'org.graphoenix:graphoenix-core:0.1.3' // 核心
implementation 'org.graphoenix:nozdormu-inject:0.1.0' // 依赖注入
implementation 'org.graphoenix:nozdormu-config:0.1.0' // 配置
annotationProcessor 'org.graphoenix:graphoenix-annotation-processor:0.1.3' // 核心编译器
annotationProcessor 'org.graphoenix:nozdormu-inject:0.1.0'
annotationProcessor 'org.graphoenix:nozdormu-config:0.1.0'
}
2. 定义包名
order-package/src/main/java/demo/gp/order/package-info.java
@Package // 添加@Package注解, package-info.java所在路径为包名
package demo.gp.order;
import io.graphoenix.spi.annotation.Package;
配置应用(Application)
1. 引入依赖
order-app/build.gradle
repositories {
mavenCentral()
jcenter()
}
dependencies {
implementation 'org.graphoenix:graphoenix-core:0.1.3' // 核心
implementation 'org.graphoenix:nozdormu-inject:0.1.0' // 依赖注入
implementation 'org.graphoenix:nozdormu-config:0.1.0' // 配置
implementation 'org.graphoenix:graphoenix-http-server:0.1.4' // http服务器
implementation 'org.graphoenix:graphoenix-r2dbc:0.1.3' // r2dbc数据库连接
implementation 'org.graphoenix:graphoenix-introspection:0.1.3' // 内省模块
implementation 'org.graphoenix:graphoenix-admin:0.1.4' // 开发者工具, 提供GraphiQL和GraphQL Voyager
// implementation group: 'io.netty', name: 'netty-resolver-dns-native-macos', version: '4.1.81.Final', classifier: 'osx-aarch_64' // OSX需要引用
runtimeOnly 'org.mariadb:r2dbc-mariadb:1.1.4' // mariadb驱动
annotationProcessor 'org.graphoenix:graphoenix-annotation-processor:0.1.3' // 核心编译器
annotationProcessor 'org.graphoenix:nozdormu-inject:0.1.0'
annotationProcessor 'org.graphoenix:nozdormu-config:0.1.0'
annotationProcessor 'org.graphoenix:graphoenix-r2dbc:0.1.3'
annotationProcessor 'org.graphoenix:graphoenix-introspection:0.1.3'
}
2. 创建启动类
order-app/src/main/java/demo/gp/order/App.java
package demo.gp.order;
import io.graphoenix.spi.annotation.Application;
import static io.graphoenix.core.bootstrap.App.APP;
@Application // 添加@Application注解标记为启动类, 所在路径为包名
public class App {
public static void main(String[] args) {
APP.run(args);
}
}