1.开启服务发现功能(@EnableDiscoveryClient)
@EnableDiscoveryClient //开启服务发现功能
@SpringBootApplication
public class ProductMainApplication {public static void main(String[] args) {SpringApplication.run(ProductMainApplication.class, args);}
}
2.测试服务发现api(DiscoveryClient)
package com.cx.product;import com.alibaba.cloud.nacos.discovery.NacosDiscoveryClient;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;import java.util.List;/*** @author Jiang* @date 2025/11/7*/
@SpringBootTest
public class DiscoverTest {@AutowiredDiscoveryClient discoveryClient;@Testpublic void discoveryClientTest(){List<String> services = discoveryClient.getServices();for (String service : services) {System.out.println("service = " + service);List<ServiceInstance> instances = discoveryClient.getInstances(service);for (ServiceInstance instance : instances) {System.out.println("instance.getHost() = " + instance.getHost());System.out.println("instance.getPort() = " + instance.getPort());}}}
}
3.测试服务发现api(NacosDiscoveryClient)
package com.cx.product;import com.alibaba.cloud.nacos.discovery.NacosDiscoveryClient;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;import java.util.List;/*** @author Jiang* @date 2025/11/7*/
@SpringBootTest
public class DiscoverTest {@ResourceNacosDiscoveryClient nacosDiscoveryClient;@Testpublic void nacosDiscoveryClientTest(){List<String> services = nacosDiscoveryClient.getServices();for (String service : services) {System.out.println("service = " + service);List<ServiceInstance> instances = nacosDiscoveryClient.getInstances(service);for (ServiceInstance instance : instances) {System.out.println("instance.getHost() = " + instance.getHost());System.out.println("instance.getPort() = " + instance.getPort());}}}}
pom.xml(product)
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.cx</groupId><artifactId>services</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>services-product</artifactId><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>//显式添加 我这里不显示添加会报错 //无法解析 org.junit.platform:junit-platform-launcher:1.10.3<junit-platform.version>1.10.3</junit-platform.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.junit.platform</groupId><artifactId>junit-platform-launcher</artifactId><version>${junit-platform.version}</version><scope>test</scope></dependency></dependencies>
</project>