SpringBoot项目与Nacos配置全过程
作者:小乔努力变强
Spring Boot是一个开发Java应用程序的框架,而Nacos是一个用于配置管理和服务发现的开源平台。
在Spring Boot项目中使用Nacos作为配置中心,可以实现动态配置管理和实时更新配置的能力。
一、Nacos服务端配置命名空间和yml文件
注意:建议大家以自己的名字全拼命名,防止大家搞混
yml 与properties文件区别?
YML(YAML)和Properties文件是两种常见的配置文件格式,用于存储应用程序或系统的配置信息。
它们有以下区别:
- 语法结构:YML使用缩进和冒号来表示层级关系,而Properties文件使用键值对的形式表示配置项。
- 可读性:YML文件使用缩进和结构化的语法,因此更易于阅读和理解。相比之下,Properties文件使用简单的键值对结构,可读性较差。
- 复杂性:YML文件支持更复杂的数据结构,如列表、嵌套对象等,可以更灵活地表示配置信息。Properties文件只支持简单的键值对,不支持复杂数据结构。
- 扩展性:YML文件可以轻松地添加注释,以及处理更复杂的配置需求。Properties文件不支持注释,且在处理复杂配置时可能变得冗长和难以维护。
- 应用场景:YML文件适用于需要更复杂结构和层级关系的配置信息,例如Spring Boot应用程序的配置文件。Properties文件适用于简单的键值对配置,常用于Java应用程序的配置文件。
二、创建SpringBoot项目
在Idea中左上角选择【File】,右击选择【New】,右击选择【Project】
此处我们要建立的是SpringBoot项目,在左边的列表中选择【Spring Initializer】,填写项目的名称,配置jdk版本,此处根据自己的实际需要进行配置即可,完成之后点击【Next】
展开【Web】下拉列表,勾选上【Spring Web】,完成后点击【Finish】
项目创建成功之后我们会发现会有很多文件夹和文件,我们只需要留下【pom.xml】文件即可,其余文件我们暂时用不到可以先删除
在父pom.xml中添加spring boot,spring cloud,spring cloud alibaba三个依赖
<dependencyManagement> <dependencies> <!--spring boot,spring cloud,spring cloud alibaba--> <!--选用官网稳定的版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.12.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Hoxton.SR12</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.2.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
修改父pom.xml中配置的SpringBoot版本
可能会出现版本不兼容的问题,我们在这里将SpringBoot版本修改为【2.3.12.RELEASE】
三、创建子服务
这时候我们要新建两个子服务
点击项目名【NacosInstance】右击选择【New】,右击选择【Module】
要创建两个子服务都是普通的Maven项目,所以这里我们选择【Maven】就可以,完成后点击【Next】
输入新创建服务的名称和地址,完成后点击【Finish】
此时项目中就多了一个名叫order-Service的服务,我们为新添加的服务配置nacos依赖,点击进入oser-service服务的【pom.xml】文件
<dependencies> <!-- nacos服务注册/发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--nacos配置中心来做配置管理--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
在order-Service子服务的src文件夹中,选择【resources】右击新建一个yml配置文件,并进行nacos的配置
server: port: 9000 servlet: context-path: /order-Service spring: cloud: nacos: discovery: server-addr: 152.136.111.77:5555 namespace: 10ecded1-361f-45d7-a009-ad2355304ff5 config: server-addr: 152.136.111.77:5555 namespace: 10ecded1-361f-45d7-a009-ad2355304ff5 prefix: order file-extension: yml application: name: order
四、Controller编写
在order-Service服务中按照下图的格式新建两个文件,分别为启动类和请求类
在【OrderController】类中编写请求的逻辑代码
package order.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/placeOrder") @Controller public class OrderController { @GetMapping("/order") public String placeOrder(){ return "已下单"; } }
在【OrderServiceApplication】类中编写程序启动逻辑
package order; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class OrderServiceApplication { public static void main(String[] args) { SpringApplication.run(OrderServiceApplication.class, args); } }
五、Tomcat启动程序
配置成功
此时,我们再次在浏览器中打开Nacos服务端,点击【服务列表】,我们配置的order-Service服务就注册成功啦!!
总结
通过以上步骤,就可以在Spring Boot项目中使用Nacos作为配置中心,并实现动态配置管理。
在Nacos中更新配置后,应用程序将自动获取最新的配置值。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。