当前位置: 首页 > news >正文

开发高端网站建设自己做网站的流程

开发高端网站建设,自己做网站的流程,桐乡网站建设,附近网站建设公司Spring Cloud MyBatis Plus GraphQL 完整示例 1、创建Spring Boot子项目1.1 配置POM,添加必要的依赖1.2 配置MyBatis-Plus 2、集成GraphQL2.1 定义schema.graphqls2.2 添加GraphQL解析器2.3 配置schame文件配置 3、访问测试3.1 查询测试(演示&#xff…

Spring Cloud + MyBatis Plus + GraphQL 完整示例

  • 1、创建Spring Boot子项目
    • 1.1 配置POM,添加必要的依赖
    • 1.2 配置MyBatis-Plus
  • 2、集成GraphQL
    • 2.1 定义schema.graphqls
    • 2.2 添加GraphQL解析器
    • 2.3 配置schame文件配置
  • 3、访问测试
    • 3.1 查询测试(演示)
    • 3.2 添加测试(演示)
    • 3.3 修改测试(演示)
    • 3.4 删除测试(演示)

为了创建一个完整的Spring Cloud应用,结合MyBatis-Plus和GraphQL,构建一个简单的微服务项目。这个示例将包括以下几个部分:- 创建Spring Boot子项目。
- 配置MyBatis-Plus以进行数据库操作。
- 集成GraphQL以提供查询接口。
- 我们将假设有一个简单的实体类Person,并为其创建CRUD操作和GraphQL查询。

1、创建Spring Boot子项目

1.1 配置POM,添加必要的依赖

  • 首先,我们需要创建一个新的Spring Boot项目,并添加必要的依赖项。以下是Maven pom.xml配置文件的内容:
          <!--graphql--><dependency><groupId>com.graphql-java-kickstart</groupId><artifactId>graphql-spring-boot-starter</artifactId><version>11.0.0</version></dependency><dependency><groupId>com.graphql-java-kickstart</groupId><artifactId>graphiql-spring-boot-starter</artifactId><version>11.0.0</version></dependency><!--mybatisPlus&mysql--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.2.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.4.1</version></dependency>

1.2 配置MyBatis-Plus

  • 接下来,我们配置MyBatis-Plus来处理我们的数据访问层。首先,定义一个Person实体类:
package com.springboot.demo.domain;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;/*** 用户表** @author water* @version 1.0.0* @date 2024-12-04 17:45*/
@Data
@TableName("demo_person")
public class Person {private Long id;private String name;private int age;}
  • 然后,创建对应的Mapper接口:
package com.springboot.demo.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.springboot.demo.domain.Person;/*** @author water* @version 1.0.0* @date 2024-12-05 08:11*/
public interface PersonMapper extends BaseMapper<Person> {
}
  • 最后,在Spring Boot主类上启用MyBatis-Plus扫描器:
package com.springboot.demo;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;/*** springboot -demo** @Author: water* @Date: 2024/12/4 18:09* @Version : 1.0.0*/
@SpringBootApplication
@MapperScan("com.springboot.demo.mapper")
@EnableDiscoveryClient
@EnableFeignClients
public class SpringbootDemoApp {public static void main(String[] args) {SpringApplication.run(SpringbootDemoApp.class, args);}}
  • 同时,配置application.yml文件来设置数据库连接信息:
spring:profiles:active: clouddatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/spring-dmeo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=falseusername: demopassword: Spring@demo24hikari:maximum-pool-size: 10minimum-idle: 1idle-timeout: 30000max-lifetime: 1800000transaction:default-timeout: 30graphql:graphiql:enabled: true#mybatis-plus
mybatis-plus:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.springboot.demo.**.domainconfiguration:map-underscore-to-camel-case: true# 默认日志输出: org.apache.ibatis.logging.slf4j.Slf4jImpl# 更详细的日志输出 会有性能损耗: org.apache.ibatis.logging.stdout.StdOutImpllog-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl #关闭日志记录 (可单纯使用 p6spy 分析)cache-enabled: falseauto-mapping-behavior: fullglobal-config:banner: falsedb-config:id-type: assign_id# 默认1删除logic-delete-value: 1# 正常0logic-not-delete-value: 0
#  日志
logging:level:com:example: debugorg:springframework:security: debugsecurity.access: debugsecurity.web: debugsecurity.web.access: debugweb: debugmanagement:endpoints:web:exposure:include: health,info

2、集成GraphQL

2.1 定义schema.graphqls

接下来,我们集成GraphQL以暴露API供客户端查询使用。首先,创建一个GraphQL schema文件schema.graphqls:
# src/main/resources/schema.graphqls
type Query {users: [Person]personById(id: ID!): Person
}type Mutation {addUser(name: String!, age: Int!): PersonupdateUser(id: ID!, name: String, age: Int): PersondeleteUser(id: ID!): Boolean
}type Person {id: ID!name: String!age: Int!
}

2.2 添加GraphQL解析器

  • 然后,为这些GraphQL查询和变更创建解析器:
package com.springboot.demo.resolver;import com.springboot.demo.domain.Person;
import com.springboot.demo.mapper.PersonMapper;
import graphql.kickstart.tools.GraphQLMutationResolver;
import graphql.kickstart.tools.GraphQLQueryResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.util.List;/*** GraphQL 查询创建解析器。** @author water* @version 1.0.0* @date 2024-12-05 11:29*/
@Component
public class UserQuery implements GraphQLQueryResolver, GraphQLMutationResolver {@Autowiredprivate PersonMapper personMapper;public List<Person> users() {return personMapper.selectList(null);}public Person personById(String id) {personMapper.selectById(id);return personMapper.selectById(id);}public Person addUser(String name, int age) {Person user = new Person();user.setName(name);user.setAge(age);personMapper.insert(user);return user;}public Person updateUser(Long id, String name, Integer age) {Person user = personMapper.selectById(id);if (user != null) {if (name != null) {user.setName(name);}if (age != null) {user.setAge(age);}personMapper.updateById(user);}return user;}public boolean deleteUser(Long id) {return personMapper.deleteById(id) > 0;}}

2.3 配置schame文件配置

  • 最后,配置GraphQL工具包以加载schema文件和其他相关配置:
package com.springboot.demo.config;import graphql.schema.idl.SchemaParser;
import graphql.schema.idl.TypeDefinitionRegistry;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;/*** @author water* @version 1.0.0* @date 2024-12-05 14:30*/
@Configuration
public class GraphQLConfig {@Beanpublic Resource graphQLSchemaFile() {return new ClassPathResource("schema.graphqls");}@Beanpublic TypeDefinitionRegistry typeDefinitionRegistry(Resource resource) throws Exception {SchemaParser parser = new SchemaParser();return parser.parse(resource.getInputStream());}
}

至此,我们就完成了一个整合了Spring Cloud、MyBatis-Plus和GraphQL的简单示例项目的搭建。 您可以启动应用程序并在浏览器中访问http://localhost:8080/graphiql来测试GraphQL API。
在这里插入图片描述

3、访问测试

  • 测试请求的脚本
# Welcome to GraphiQL
#
# GraphiQL is an in-browser tool for writing, validating, and
# testing GraphQL queries.
#
# Type queries into this side of the screen, and you will see intelligent
# typeaheads aware of the current GraphQL type schema and live syntax and
# validation errors highlighted within the text.
#
# GraphQL queries typically start with a "{" character. Lines that start
# with a # are ignored.
#
# An example GraphQL query might look like:
#
#     {
#       field(arg: "value") {
#         subField
#       }
#     }
#
# Keyboard shortcuts:
#
#  Prettify Query:  Shift-Ctrl-P (or press the prettify button above)
#
#     Merge Query:  Shift-Ctrl-M (or press the merge button above)
#
#       Run Query:  Ctrl-Enter (or press the play button above)
#
#   Auto Complete:  Ctrl-Space (or just start typing)
#
query select {personById(id:"1"){idnameage}}
query selectList {users{idnameage}}
mutation addUser{addUser(name:"王麻子", age:22){idnameage}
}mutation updateUser{updateUser(id:1864582448746012673,name:"钢蛋", age:31){idnameage}
}mutation updateUserById{updateUser(id:1864569571339378690,name:"赵六六"){idname}
}mutation deleteUser{deleteUser(id:1864582448746012673)
}

3.1 查询测试(演示)

  • 根据Id查询
    在这里插入图片描述
  • 查询所有
    在这里插入图片描述

3.2 添加测试(演示)

在这里插入图片描述

3.3 修改测试(演示)

在这里插入图片描述

3.4 删除测试(演示)

在这里插入图片描述

http://www.ds6.com.cn/news/81921.html

相关文章:

  • wordpress吐槽插件重庆seo职位
  • 美食网站界面设计seo优化是什么意思
  • 网站建设的语言网站如何发布
  • 图片设计软件appseo服务外包客服
  • 租空间网站全网最低价24小时自助下单平台
  • 为什么要建立企业网站打广告去哪个平台免费
  • 河南南阳油田网站建设安徽关键词seo
  • 网站建设的方式有哪些内容搜索引擎优化技术有哪些
  • 做网站运营话术朋友圈推广广告
  • 上海做网站最低价如何用google搜索产品关键词
  • 电子商务网站设计模板域名注册要多少钱
  • 福州网站制作托管维护网络推广免费平台
  • 做服装外贸的网站建设网络营销案例分析报告
  • 关于网站建设中原创文章的一些想法阿亮seo技术顾问
  • 专业网站搭建运营2023网络营销成功案例
  • 邢台网站建设厂家国际财经新闻
  • 深圳建站网站武汉百度信息流广告
  • 富阳网站建设seo整站优化服务教程
  • 北京网站优化首页分类达人的作用
  • 现在用什么做网站排名优化网站seo排名
  • 可以免费做会计题的网站seo优化博客
  • 宝塔搭建app教程seo优化排名易下拉效率
  • 教你做网站的视频宽带业务如何推广
  • wordpress静态网站博客最新的新闻 最新消息
  • 软件定制公司设计方案叶涛网站推广优化
  • 广州培训做网站百度知道问答平台
  • 百度外卖网站建设与维护方法优化设计答案六年级上册
  • 如何在公司服务器建个内部 网站如何在百度打广告
  • joomla适合做什么网站如何自己编写网站
  • wordpress导入error 500seo外包品牌