跳到主要内容

安装

安装依赖, 初始化项目

项目结构:

|-- 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);
}
}