使用gradle的方式进行Springboot3的web开发(微服务版)
简要:
最近看了很多的Springboot3的项目,但是发现很多都是用maven来进行版本管理的,很少有用gradle来管理的,通过网上查找资料,看视频,终于自己写一个gradle管理的Springboot3的项目
第一步:创建项目

注意:JDK的版本必须要在17或者以上。
第二步:设置gradle仓库

第三步:创建项目及子模块

添加模块和微服务

其中build.gradle中引入的依赖和配置
1 description 'boot3的测试'
2
3 //构建Gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等。
4 buildscript {
5 ext {
6 springBootVersion = '3.0.2'
7 springCloudVersion = '2022.0.0'
8 springCloudAlibabaVersion = '2022.0.0.0-RC1'
9 }
10
11 //设置仓库
12 repositories {
13 mavenLocal()
14 maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
15 maven { url 'https://repo.spring.io/milestone' }
16 }
17
18 dependencies {
19 classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
20 }
21
22 }
23
24
25 //配置全局, 包括root项目和子项目
26 allprojects {
27 group 'com.an'
28 version '1.0-SNAPSHOT'
29
30 //配置编码格式
31 tasks.withType(JavaCompile) {
32 options.encoding = "UTF-8"
33 }
34
35 //设置仓库
36 repositories {
37 mavenLocal()
38 maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
39 maven { url 'https://repo.spring.io/milestone' }
40 }
41 }
42
43 //引入版本管理
44 apply from: 'version.gradle'
45
46
47 //配置所有子项目
48 subprojects {
49
50 apply plugin: 'java'
51 apply plugin: 'java-library' //api
52 apply plugin: 'io.spring.dependency-management'
53
54 sourceCompatibility = '17'
55 targetCompatibility = '17'
56
57
58 //公用的依赖
59 dependencies {
60 compileOnly 'org.projectlombok:lombok:1.18.28'
61 annotationProcessor 'org.projectlombok:lombok:1.18.28'
62 }
63
64 test {
65 useJUnitPlatform()
66 }
67
68
69 // dependencyManagement版本统一管理,类似于父maven的dependencyManagement
70 dependencyManagement {
71 dependencies {
72 for (depJar in rootProject.ext.dependencies) {
73 dependency depJar.value
74 }
75 }
76 imports {
77 mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
78 mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"
79 }
80 }
81 }
82
83 //实体类
84 project(':boot3-bean') {
85 description("boot-bean存放表对应的实体类")
86 dependencies {
87 //mybatis-plus
88 api 'com.baomidou:mybatis-plus-boot-starter'
89 //mybatis
90 api 'org.mybatis:mybatis'
91 //fastjson2,注意:Spring3.0后必须引入第二代fastjson,引入第一代项目会启动不起来
92 api 'com.alibaba.fastjson2:fastjson2'
93 //commons
94 api 'org.apache.commons:commons-lang3'
95 //mysql
96 api 'mysql:mysql-connector-java'
97 //jjwt
98 api 'io.jsonwebtoken:jjwt'
99 //druid
100 api 'com.alibaba:druid'
101 //auto-trim,自动去除空格
102 api 'com.supalle:auto-trim'
103 }
104 }
105
106 //工具类
107 project("boot3-common") {
108 description("boot3-common存放微服务常用的工具类")
109 dependencies {
110 //引入bean
111 api project(':boot3-bean')
112 //SpringBootWeb
113 api 'org.springframework.boot:spring-boot-starter-web'
114 //netty
115 api 'io.netty:netty-all'
116 //生成随机数的工具类
117 api 'cn.hutool:hutool-all'
118
119 }
120 }
121
122 //业务类
123 project("boot3-service") {
124 //导入Springboot
125 apply plugin: 'org.springframework.boot'
126 //子类公用依赖
127 subprojects {
128
129 //导入java-library版本管理,无需在引入版本号
130 apply plugin: 'java-library'
131 //导入Springboot
132 apply plugin: 'org.springframework.boot'
133
134 dependencies {
135 //导入工具类,并且直接可以引入bean,无需在导入bean
136 api project(':boot3-common')
137 //导入nacos注册发现
138 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'
139 //nacos配置中心来做配置管理
140 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config'
141 //springcloud-bootstrap的依赖(为了设置bootstap.yml)
142 api "org.springframework.cloud:spring-cloud-starter-bootstrap"
143 //valid(空值判断)
144 api 'org.springframework.boot:spring-boot-starter-validation'
145 //spring aop
146 api 'org.springframework.boot:spring-boot-starter-aop'
147 }
148 }
149 }
150
151 //网关类
152 project("boot3-gateway") {
153 subprojects {
154 //导入java-library版本管理,无需在引入版本号
155 apply plugin: 'java-library'
156 //导入Springboot
157 apply plugin: 'org.springframework.boot'
158
159 dependencies {
160 //gateway网关
161 api 'org.springframework.cloud:spring-cloud-starter-gateway'
162 //导入nacos注册中心
163 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'
164 //nacos配置中心来做配置管理
165 api 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config'
166 //springcloud-bootstrap的依赖(为了设置bootstap.yml)
167 api "org.springframework.cloud:spring-cloud-starter-bootstrap"
168 //负载均衡,不设置这个会报503
169 api 'org.springframework.cloud:spring-cloud-starter-loadbalancer'
170 }
171 }
172 }
version.gradle中的配置
1 // 依赖版本管理
2 ext {
3 version = [
4 "springboot" : "3.0.2",
5 //----bean中的依赖----
6 "fastjson2" : "2.0.33",
7 "mybatisPlus" : "3.5.3",
8 "mysql" : "8.0.25",
9 "mybatis" : "3.5.1",
10 "lombok" : "1.18.28",
11 "druid" : "1.2.18",
12 //----common中的依赖----
13 "hutool" : "5.8.20",
14 //----service中的依赖----
15 ]
16 dependencies = [
17 //----bean中的依赖----
18 "fastjson2" : "com.alibaba.fastjson2:fastjson2:${version.fastjson2}",
19 "mybatisPlusBootStarter": "com.baomidou:mybatis-plus-boot-starter:${version.mybatisPlus}",
20 "mysql" : "mysql:mysql-connector-java:${version.mysql}",
21 "mybatis" : "org.mybatis:mybatis:${version.mybatis}",
22 "druid" : "com.alibaba:druid:${version.druid}",
23
24 //----common中的依赖----
25 "springbootWeb" : "org.springframework.boot:spring-boot-starter-web:${version.springboot}",
26
27 //----service中的依赖----
28
29
30
31
32 ]
33
34 }
第四步:分别设置bootstrap.yml中的配置信息
①、我这里就以admin-service的微服务举例,其他微服务也是类似配置即可
server:
port: 52801
spring:
# 服务名
application:
name: chat-admin
cloud:
nacos:
discovery:
# 服务器中的nacos地址
server-addr: 192.168.200.130:8848
config:
server-addr: 192.168.200.130:8848
file-extension: yml
# SpringCloud 2021版本之后,需要用以下方式导入nacos的配置文件
config:
import:
- optional:nacos:chat-admin.yml # 监听 DEFAULT_GROUP:test.yml
②、admin-gateway的网关微服务配置
server:
port: 29801
spring:
application:
name: admin-gateway
cloud:
nacos:
discovery:
server-addr: 192.168.200.130:8848
config:
server-addr: 192.168.200.130:8848
file-extension: yml
# SpringCloud 2021版本之后,需要用以下方式导入nacos的配置文件
config:
import:
- optional:nacos:admin-gateway.yml # 监听 DEFAULT_GROUP:admin.yml
第五步:在nacos中设置yml配置信息

设置成功后分别启动项目,可以看到已经能成功启动

使用gradle的方式进行Springboot3的web开发(微服务版)的更多相关文章
- 基于gin的golang web开发:服务间调用
微服务开发中服务间调用的主流方式有两种HTTP.RPC,HTTP相对来说比较简单.本文将使用 Resty 包来实现基于HTTP的微服务调用. Resty简介 Resty 是一个简单的HTTP和REST ...
- ASP.NET4 与 VS2010 Web 开发页面服务改进
转:http://blog.163.com/kele_lipeng/blog/static/81345278201132754729336/ 作者:朱先忠 本文将接着上一篇 ASP.NET4与VS20 ...
- springboot的maven多模块项目架构微服务搭建——依赖方式的多模块演化为微服务项目
在上一篇依赖方式多模块的基础上对项目进行改造.主要改造user-service项目,service要配置mapper.mybatis及数据库相关的东西,后面的接口消费方user就不再需要了 注意:以下 ...
- Spring Cloud 新一代Web框架微服务翘楚(一)
序言 springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合.基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易. 通过一些简单的注解,我们就可以快速的 ...
- Spring Cloud-新一代Web框架微服务
序言 springcloud是微服务架构的集大成者,将一系列优秀的组件进行了整合.基于springboot构建,对我们熟悉spring的程序员来说,上手比较容易. 通过一些简单的注解,我们就可以快速的 ...
- Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎
前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的 ...
- 微服务的一种开源实现方式——dubbo+zookeeper
转自: http://blog.csdn.NET/zhdd99/article/details/52263609 微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太 ...
- Android Gradle 依赖方式
Android Gradle 依赖方式有以下6种: Compile compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中. Provided Prov ...
- 数据存储的两种方式:Cookie 和Web Storage
数据存储的两种方式:Cookie 和Web Storage 1.Cookie Cookie的作用就像你去超市购物时,第一次给你办张购物卡,这个购物卡里存放了一些你的个人信息,下次你再来这个连锁超市时, ...
- 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- k8s 自动扩缩容HPA原理及adapter配置详解👑
大家好,我是蓝胖子,都知道,k8s拥有自动扩缩容机制HPA,我们能够通过配置针对不同的扩缩容场景进行自动扩缩容,往往初学者在面对其中繁多配置的时候会学了又忘记,今天我将会以一种不同的视角,结合api ...
- 查看docker容器使用的cpu和内存
转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称. 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情 ...
- 前端三件套系例之JQuery——JQuery基础、JQuery选择器、JQuery文本属性样式操作、JQuery操作DOM
文章目录 1 JQuery基础 1. 了解jQuery 1.1 什么是jQuery 1.2 什么事JS类库 1.3 常见JS类库 1.4 jQuery的优势 1.5 jQuery的版本 1.6 jQu ...
- client-go实战之六:时隔两年,刷新版本继续实战
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 时隔两年,<client-go实战>被激活 ...
- OpenJDK17-JVM源码阅读-ZGC-并发标记
1.ZGC简介 1.1 介绍 ZGC 是一款低延迟的垃圾回收器,是 Java 垃圾收集技术的最前沿,理解了 ZGC,那么便可以说理解了 java 最前沿的垃圾收集技术. 从 JDK11 中作为试验特性 ...
- Spring扩展接口(3):BeanFactoryPostProcessor
在此系列文章中,我总结了Spring几乎所有的扩展接口,以及各个扩展点的使用场景.并整理出一个bean在spring中从被加载到最终初始化的所有可扩展点的顺序调用图.这样,我们也可以看到bean是如何 ...
- java值传递机制
目录 1. 基本数据类型 2. 引用数据类型 3. 总结 1. 基本数据类型 public class ValueTransferTest { public static void main(Stri ...
- 创建CI/CD流水线中的IaC前,需要考虑哪些事项?
许多软件工程团队通常会遵循相似的方法来交付基础设施以支持软件开发生命周期.为了缩小基础设施配置方式与应用程序环境部署方式之间的差距,许多 DevOps 团队将其基础设施即代码(IaC)模块直接连接到其 ...
- Java代码审计之目录穿越(任意文件下载/读取)
一.目录穿越漏洞 1.什么是目录穿越 所谓的目录穿越指利用操作系统中的文件系统对目录的表示.在文件系统路径中,".."表示上一级目录,当你使用"../"时,你正 ...
- nginx参数调优能提升多少性能
前言 nginx安装后一般都会进行参数优化,网上找找也有很多相关文章,但是这些参数优化对Nginx性能会有多大影响?为此我做个简单的实验测试下这些参数能提升多少性能. 声明一下,测试流程比较简单,后端 ...