springboot集成nacos最重要的是版本的对应。详细版本请参考版本说明
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.4.2</version>
<relativePath/>
</parent>
<groupId>com.menshaojing</groupId>
<artifactId>nacos-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>nacos-server</name>
<description>nacos服务</description>
<properties>
<!-- springboot2.4.x依赖的spring.cloud.version、spring.cloud.alibaba.version -->
<spring.cloud.version>2020.0.1</spring.cloud.version>
<spring.cloud.alibaba.version>2021.1</spring.cloud.alibaba.version>
<spring-boot.version>2.4.2</spring-boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 通过bootstrap.yml配置文件生效,需要引入spring-cloud-starter-bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!-- nacos config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- nacos discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--nacos+RestTemplate使用服务名报异常java.net.UnknownHostException -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<!-- resources排除了需要外置的文件,本地运行需注释该配置 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>*.yml</exclude>
<exclude>*.properties</exclude>
<exclude>*.xml</exclude>
</excludes>
</resource>
</resources>
</build>
</project>
2.添加启动注解@EnableDiscoveryClient
package com.menshaojing.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class TestServerApplication {
public static void main(String[] args) {
SpringApplication.run(PenServerApplication.class, args);
}
}
3.配置bootstrap.yml
spring:
application:
name: nacos-server
profiles:
active: dev
cloud:
nacos:
config:
file-extension: yaml
server-addr: 127.0.0.1:8848
extension-configs:
- data-id: application-dev.yml
group: DEFAULT_GROUP
refresh: true
discovery:
server-addr: 127.0.0.1:8848
4. resources排除了需要外置的文件,我们可以通过配置启动参数(vm options)进行引用外置文件进行启动
例如:
-Dspring.cloud.nacos.config.namespace=public
-Dspring.cloud.nacos.discovery.namespace=public
-Dspring.config.location=D:/work/nacos-server/src/main/resources/bootstrap.yml
-Dserver.port=9110