栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合Nacos

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合Nacos

springboot整合Nacos 一 实现Nacos的配置中心

1.1 创建一个maven项目,添加依赖,删除src文件

 com.qc.cloud.demo
  cloud-master
  1.0
  
    cloud-config
    cloud-regist
    cloud-consumer
  
  pom

  
    org.springframework.boot
    spring-boot-starter-parent
    2.3.2.RELEASE
  

  
    UTF-8
    UTF-8
    1.8
    Hoxton.SR4
    1.7
    1.7
  

  
    
      
        org.springframework.cloud
        spring-cloud-dependencies
        ${spring-cloud.version}
        pom
        import
      
      
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        2.2.3.RELEASE
        pom
        import
      
    
  


  
    
      org.springframework.boot
      spring-boot-starter-web
    
    
      org.springframework.boot
      spring-boot-starter-test
      test
    
    
    
      org.projectlombok
      lombok
      1.18.22
      provided
    
    
    
      org.springframework.boot
      spring-boot-devtools
    

    
      junit
      junit
      4.11
      test
    

  

1.2 新建nacos-config模块,新增依赖

    
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

1.3 在resource文件夹下新建bootstrap.yml文件,配置nacos集群

##项目端口
server:
  port: 10010
spring:
  application:
    #指定当前服务名字
    name: nacos-config
  cloud:
    nacos:
      #连接Nacos集群
      config:
      	##集群代理地址(nginx代理地址)
        server-addr: 192.168.92.145:80
        ##名称
        name: ${spring.application.name}
        ##nacos配置中的namespace
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2
        ##文件后缀
        file-extension: yml
        ##群组
        group: DEFAULT_GROUP

1.4 新建一个controller类来做接口测试

@RestController
@RequestMapping("config")
@RefreshScope
public class ConfigController {


    @Value("${name}")
    private String name;


    @GetMapping("/refresh")
    public String getConfigName(){

        return "your name is:"+name;
    }

}

1.5 在nacos配置中心进行配置管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-STjdKyeL-1652431064023)(https://raw.githubusercontent.com/linglongQaQ/cloudimg/master/img/image-20220216174516349.png)]

##通过修改name的值,请求接口地址,name值时动态变化的
http://localhost:10012/config/refresh=
二 实现nacos的服务注册

2.1 新建一个模块,修改pom文件

 
      com.alibaba.cloud
      spring-cloud-starter-alibaba-nacos-discovery
    

    
      org.springframework.boot
      spring-boot-starter-web
    
    
      org.springframework.boot
      spring-boot-starter-test
      test
    

2.2 新建一个项目的配置文件

## 端口
server:
  port: 10011
## 项目名
spring:
  application:
    name: nacos-regist
  cloud:
    nacos:
      discovery:
      	##nacos地址
        server-addr: 192.168.92.145:80
        ##命名空间
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2

2.3 启动项目,在nacos的控制台中发现多了一个服务,表明服务注册成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9yp1yQi-1652431064024)(https://raw.githubusercontent.com/linglongQaQ/cloudimg/master/img/image-20220216180302097.png)]

三 实现nacos的服务消费

3.1 新建一个模块,修改pom文件

   		
		
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

3.2 新建项目配置文件

server:
  port: 10012

spring:
  application:
    name: nacos-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.92.145:80
        namespace: 65cc6807-1077-44c9-aabe-289a2d4c5be2

3.3 在注册服务nacos-regist中新增一个测试接口

@RestController
@RequestMapping("regist")
public class NacosRegisterController {


    @GetMapping("say")
    public String sayHi(@RequestParam String name){

        return "Hi "+ name;
    }

}

3.4 在服务消费端新增一个服务发现的client

// 服务名称为服务注册模块的名称
@FeignClient("nacos-regist")
public interface NacosFeignClient {

    //路径为3.3测试接口的路由
    @GetMapping("regist/say")
    String say(@RequestParam  String name);
}

3.5 服务调用

@RestController
@RequestMapping("consumer")
public class NacosConsumerController {

    @Autowired
    private NacosFeignClient nacosFeignClient;

    @RequestMapping("cus")
    public String hello(@RequestParam String name){
        return nacosFeignClient.say(name);
    }
}

3.6 接口测试

http://localhost:10012/consumer/cus?name=jack

注意:

1.springboot 的版本最好不要低于nacos版本,否则会报错

2.springcloud 版本需要进行适配 

3.feign 在传递参数的过程中,有@RequestBody,@RequestParam两种参数类型的注解,是必填项,和springmvc不同,不能进行默认

.say(name);
}
}



3.6 接口测试

```http
http://localhost:10012/consumer/cus?name=jack

注意:

1.springboot 的版本最好不要低于nacos版本,否则会报错

2.springcloud 版本需要进行适配 

3.feign 在传递参数的过程中,有@RequestBody,@RequestParam两种参数类型的注解,是必填项,和springmvc不同,不能进行默认

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号