gradle7.6.1+springboot3.2.4创建微服务工程

目录

一、创建主工程cloud-demo并删除src目录

二、创建子工程user-service/order-service

三、更改父工程build.gradle文件

四、子工程使用mybatis框架

五、子工程使用mybatis-plus框架

六、相关数据库创建

七、最终目录结构


一、创建主工程cloud-demo并删除src目录
二、创建子工程user-service/order-service
三、更改父工程build.gradle文件
Groovy 复制代码
plugins {  
	id 'org.springframework.boot' version '3.2.4'  
	id 'io.spring.dependency-management' version '1.1.4'  
}  
  
group = 'com.fafa'  
  
subprojects {  
	apply plugin: 'org.springframework.boot'  
	apply plugin: 'io.spring.dependency-management'  
	apply plugin: 'java'  
	  
	sourceCompatibility = 17  
	targetCompatibility = 17  
	  
	ext {  
		MAVEN_REPO_RELEASE_URL = System.getenv('MAVEN_REPO_RELEASE_URL')  
		MAVEN_REPO_SNAPSHOT_URL = System.getenv('MAVEN_REPO_SNAPSHOT_URL')  
		MAVEN_DEPLOY_USER = System.getenv('MAVEN_DEPLOY_USER')  
		MAVEN_DEPLOY_PASSWORD = System.getenv('MAVEN_DEPLOY_PASSWORD')  
	}  
	  
	repositories {  
		maven { url "https://maven.aliyun.com/nexus/content/groups/public/" }  
		maven {  
			url 'https://maven.aliyun.com/repository/public'  
		}  
		maven { url "https://repo.spring.io/milestone" }  
		maven { url "https://plugins.gradle.org/m2/" }  
		maven {  
			credentials {  
				username MAVEN_DEPLOY_USER  
				password MAVEN_DEPLOY_PASSWORD  
			}  
			url MAVEN_REPO_RELEASE_URL  
		}  
		maven {  
			credentials {  
				username MAVEN_DEPLOY_USER  
				password MAVEN_DEPLOY_PASSWORD  
			}  
			url MAVEN_REPO_SNAPSHOT_URL  
		}  
		mavenCentral()  
	}  
	  
	dependencies {  
		//Spring Boot Web 启动器  
		implementation 'org.springframework.boot:spring-boot-starter-web'  
		  
		compileOnly 'org.projectlombok:lombok'  
		runtimeOnly 'com.mysql:mysql-connector-j'  
		annotationProcessor 'org.projectlombok:lombok'  
		  
		testImplementation 'org.springframework.boot:spring-boot-starter-test' 
	}  
	  
	test {  
		useJUnitPlatform()  
	}  
	  
	sourceSets {  
		main {  
		resources {  
			srcDirs = ['src/main/resources']  
			}  
		}  
	}  
	  
	tasks.withType(JavaCompile) {  
		options.encoding = "UTF-8"  
		doLast {  
			copy {  
				from sourceSets.main.resources  
				into "$buildDir/resources/main"  
			}  
		}  
	}  
}
四、子工程使用mybatis框架
  • build.gradle
Groovy 复制代码
group = 'com.fafa.order'  
version = '1.0'  
description = "order-service"  
  
apply plugin: 'application'  
  
dependencies {  
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3' 
}
  • application.yml
Groovy 复制代码
server:  
	port: 8084  
  
spring:  
	datasource:  
		url: jdbc:mysql://localhost:3306/db_order?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC  
		username: root  
		password: 123456  
mybatis:  
	mapper-locations: classpath:/mappers/**/*.xml  
	type-aliases-package: com.fafa.order.entity
  • OrderMapper.xml
XML 复制代码
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper  
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
	<mapper namespace="com.fafa.order.mapper.OrderMapper">  
		<resultMap type="Order" id="orderResult">  
		<result property="orderId" column="order_id"/>  
		<result property="orderName" column="order_name"/>  
		<result property="goodsId" column="goods_id"/>  
		<result property="summary" column="summary"/>  
	</resultMap>  
  
	<sql id="selectOrderVo">  
		select * from order_info  
	</sql>  
	  
	<select id="getAll" parameterType="Order" resultMap="orderResult">  
		<include refid="selectOrderVo"/>  
		<where>  
			<if test="orderName != null ">and order_name like concat('%', #{orderName}, '%')</if>  
		</where>  
		order by order_id desc  
	</select>  
</mapper>
  • Order.java
java 复制代码
package com.fafa.order.entity;  
import lombok.Data;  
  
@Data  
public class Order {  
	private int orderId;  
	private String orderName;  
	private int goodsId;  
	private int summary;  
}
  • OrderMapper.java
java 复制代码
package com.fafa.order.mapper;    
import com.fafa.order.entity.Order;  
import org.apache.ibatis.annotations.Mapper;   
import java.util.List;  
  
@Mapper  
public interface OrderMapper {  
	public List<Order> getAll(Order order);  
}
  • IOrderService.java
java 复制代码
package com.fafa.order.service;  
import com.fafa.order.entity.Order;  
import java.util.List;  
  
public interface IOrderService {  
	List<Order> getAll(Order order);  
}
  • OrderService.java
java 复制代码
package com.fafa.order.service;  
import com.fafa.order.entity.Order;  
import com.fafa.order.mapper.OrderMapper;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Service;  
import java.util.List;  
  
@Service  
public class OrderService implements IOrderService{  
	@Autowired  
	private OrderMapper orderMapper;  
	  
	@Override  
	public List<Order> getAll(Order order) {  
		return orderMapper.getAll(order);  
	}  
}
  • OrderController.java
java 复制代码
package com.fafa.order.controller;  
import com.fafa.order.entity.Order;  
import com.fafa.order.service.IOrderService;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.web.bind.annotation.GetMapping;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
import java.util.List;  
  
@RestController  
@RequestMapping("/order")  
public class OrderController {  
	@Autowired  
	private IOrderService orderService;  
	  
	@GetMapping("/getAll")  
	public List<Order> getAll(Order order) {  
		return orderService.getAll(null);  
	}  
}
  • OrderApplication.java
java 复制代码
package com.fafa.order;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
  
@SpringBootApplication  
public class OrderApplication {  
	public static void main(String[] args) {  
		SpringApplication.run(OrderApplication.class, args);  
	}  
}
  • OrderApplicationTests.java
java 复制代码
package com.fafa.order;  
import com.fafa.order.entity.Order;  
import com.fafa.order.service.IOrderService;  
import org.junit.jupiter.api.Test;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.boot.test.context.SpringBootTest;  
import org.springframework.util.Assert;  
import java.util.List;  
  
@SpringBootTest  
public class OrderApplicationTests {  
	@Autowired  
	private IOrderService orderService;  
	  
	@Test  
	public void getAll(){  
		List<Order> list=orderService.getAll(null);  
		Assert.isTrue(list.isEmpty(),"有数据");  
		list.forEach(System.out::println);  
	}  
}
  • test.http
rust 复制代码
### getAll  
GET http://localhost:8084/order/getAll  
Accept: application/json
五、子工程使用mybatis-plus框架

参考文章:gradle7.6.1+springboot3.2.4+mybatis-plus搭建工程-CSDN博客

六、相关数据库创建
sql 复制代码
create database db_order;  
use db_order;  
  
SET NAMES utf8mb4;  
SET FOREIGN_KEY_CHECKS = 0;  
  
-- ----------------------------  
-- Table structure for order_info  
-- ----------------------------  
DROP TABLE IF EXISTS `order_info`;  
CREATE TABLE `order_info` (  
	`order_id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单ID',  
	`order_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单名称',  
	`goods_id` bigint NULL DEFAULT NULL COMMENT '商品ID',  
	`summary` bigint NULL DEFAULT NULL COMMENT '总额',  
	PRIMARY KEY (`order_id`) USING BTREE  
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单信息' ROW_FORMAT = Dynamic;  
  
SET FOREIGN_KEY_CHECKS = 1;
sql 复制代码
create database db_user;  
use db_user;  
  
SET NAMES utf8mb4;  
SET FOREIGN_KEY_CHECKS = 0;  
  
-- ----------------------------  
-- Table structure for user_info  
-- ----------------------------  
DROP TABLE IF EXISTS `user_info`;  
CREATE TABLE `user_info` (  
	`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',  
	`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户名',  
	`sex` tinyint NULL DEFAULT 0 COMMENT '性别 0 未知 1女 2男',  
	PRIMARY KEY (`user_id`) USING BTREE  
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Dynamic;  
  
SET FOREIGN_KEY_CHECKS = 1;
七、最终目录结构
相关推荐
安卓开发者2 小时前
OkHttp 与 RxJava/RxAndroid 完美结合:构建响应式网络请求架构
okhttp·架构·rxjava
睡觉z2 小时前
Kubernetes Pod调度基础
云原生·容器·kubernetes
weixin_552444204 小时前
【Deepseek】RAG 技术与模型架构的创新变革
架构
架构师汤师爷4 小时前
扣子Coze智能体实战:自动化拆解抖音对标账号,输出完整分析报告(喂饭级教程)
架构
B64A-消闲5 小时前
k8s知识点
云原生·容器·kubernetes
KubeSphere 云原生5 小时前
云原生周刊:K8s 中的后量子密码学
云原生·kubernetes·密码学
夜斗小神社5 小时前
【黑马SpringCloud微服务开发与实战】(四)微服务02
spring·spring cloud·微服务
爱吃香蕉的阿豪5 小时前
在.NET Core API 微服务中使用 gRPC:从通信模式到场景选型
微服务·.netcore·信息与通信·grpc
快乐肚皮6 小时前
ZooKeeper学习专栏(四):单机模式部署与基础操作详解
学习·zookeeper·架构·debian·部署