springCloudAlibaba FeignClient服务配置与发现

配置的动态变更

  • 添加依赖:
<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    <version>${latest.version}version>
dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

  • yml配置
spring:
  application:
    name: demo #应用名
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 #nacos地址
      config:
      	namespace: dev #命名空间ID

服务的注册与发现

服务注册

  • 添加依赖:
<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    <version>${latest.version}version>
dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

  • yml配置
spring:
  application:
    name: provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: dev #命名空间
  • 启动类
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(NacosProviderApplication.class, args);
	}
}
  • FeignClient
@FeignClient(name = "provider", path = "/feign")
public interface EchoClient {
    @PostMapping(value = "/echo")
    String echo(@PathVariable String string);
}

注意:FeignClient的name要与上面的spring.application.name一致

  • FeignClientImpl
@RequestMapping(path = "/feign")
public class EchoController implements EchoClient {
    @Override
    public String echo(@PathVariable String string) {
        return "Hello Nacos Discovery " + string;
    }
}

注意:RequestMapping里面的path要与FeignClient的path一致,假如使用了server.servlet.context-path需要在FeignClient的path加上具体context-path的前缀

服务发现

  • 添加依赖:
<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    <version>${latest.version}version>
dependency>

注意:版本 2.1.x.RELEASE 对应的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 对应的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 对应的是 Spring Boot 1.5.x 版本。

  • yml配置
spring:
  application:
    name: consumer
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: dev #命名空间
  • 启动类
@SpringBootApplication
@EnableFeignClients(basePackages = {"com.xx"})  // 扫描@FeignClient所在的包
public class NacosProviderApplication {
	public static void main(String[] args) {
		SpringApplication.run(NacosProviderApplication.class, args);
	}
}
  • 服务调用
@Service
public class EchoWeb {
    @Autowired
    private EchoClient echoClient;
    
    public String echo(String string) {
        return echoClient.echo();
    }

}

你可能感兴趣的:(spring,cloud,spring,cloud,nacos,feign)