目录
Springboot中集成GraphQL
1.前言
最近项目需求要使用GraphQL做为后端服务,提供API接口,奈何资料较少,在此记录一下搭建GraphQL服务的过程
2.工程环境
工程包含主要插件
JDK 1.8
Springboot 2.1.3
MySQL
MyBatis
Graphql-java
fastjson
Lombok
maven
3.创建Springboot工程
这里不在描述,使用IDEA或者Eclipse创建一个springboot工程或者导入一个Springboot工程都行,这里使用2.1.3.RELEASE版本
4.集成开发环境
4.1 配置pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.mx.server</groupId>
<artifactId>spring-boot-graphql</artifactId>
<version>1.0.0-RELEASE</version>
<name>spring-boot-graphql</name>
<description>easy graphql for spring boot</description>
<properties>
<java.version>1.8</java.version>
<kotlin.version>1.3.70</kotlin.version>
<mybatis.version>2.0.0</mybatis.version>
<c3p0.version>0.9.5.2</c3p0.version>
<fastjson.version>1.2.5</fastjson.version>
<junit.jupiter.version>5.6.2</junit.jupiter.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 使用Junit5,排除spring-test自带的junit4 -->
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- GraphQL -->
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-spring-boot-starter</artifactId>
<version>7.0.1</version>
</dependency>
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>6.0.2</version>
</dependency>
<!-- GraphiQL tool -->
<dependency>
<groupId>com.graphql-java-kickstart</groupId>
<artifactId>graphiql-spring-boot-starter</artifactId>
<version>7.0.1</version>
<scope>runtime</scope>
</dependency>
<!-- Log4J2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<!-- JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${
mybatis.version}</version>
</dependency>
<!-- c3p0 --