Spring Cloud(微服务)学习篇(五)

Spring Cloud(微服务)学习篇(五)

1 nacos配置文件的读取

1.1 访问localhost:8848/index.html并输入账户密码后进入nacos界面并点击配置列表

Spring Cloud(微服务)学习篇(五)_第1张图片

1.2 点击右侧的+号

Spring Cloud(微服务)学习篇(五)_第2张图片

1.3 点击加号后,进入新建配置界面,并做好如下配置

Spring Cloud(微服务)学习篇(五)_第3张图片

1.4 往下翻动,点击发布按钮

Spring Cloud(微服务)学习篇(五)_第4张图片

1.5 发布成功后的界面

Spring Cloud(微服务)学习篇(五)_第5张图片

1.6 在pom.xml(shop-user-server项目)中加入依赖

1.6.1 加入所需要导入的依赖

 
 <dependency>
     <groupId>com.alibaba.cloudgroupId>
     <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
 dependency>

1.6.2 完整的pom.xml文件内容


<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">
    <parent>
        <artifactId>shop-userartifactId>
        <groupId>com.zlzgroupId>
        <version>1.0version>
    parent>
    <modelVersion>4.0.0modelVersion>

    <artifactId>shop-user-serverartifactId>
    <dependencies>
        
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
        dependency>
        
        <dependency>
            <groupId>com.zlzgroupId>
            <artifactId>shop-sms-apiartifactId>
            <version>1.0version>
        dependency>
        
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
        dependency>
    dependencies>

project>

1.7 变更application.yml文件

1.7.1 加入的部分

config:
        server-addr: 127.0.0.1:8848 #配置中心地址

1.7.2 完整的application.yml代码

server:
  port: 8010 #801开头 表示用户集群 用户服务
spring:
  application:
    name: shop-user #项目名称 作为微服务名
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 #注册中心地址
    config:
      server-addr: 127.0.0.1:8848 #配置中心地址

1.8 变更UserController类

1.8.1 加入的部分

 @Value("${jdbc.username}")
    private String yhm;
    @Value("${jdbc.password}")
    private String password;
    @RequestMapping("config")
    public String config(){
        return "读取的用户名: "+yhm+" ,密码:"+password;
    }

1.8.2 完整的UserController类代码

package com.zlz.controller;

import com.zlz.shop.sms.api.dto.SmsDTO;
import com.zlz.shop.sms.api.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class UserController {
    @Autowired
    RestTemplate restTemplate;
    @RequestMapping("test")
    public String t(){
        //http://shop-sms/send
        String s=restTemplate.postForObject("http://shop-sms/send", null, String.class);
//        String s=restTemplate.postForObject("http://127.0.0.1:8021/send", null, String.class);
        return "用户服务调用短信服务 结果:"+s;
    }
    //使用oepnFeign的方式发送短信
    @Autowired
    SmsService smsService;
    @RequestMapping("test2")
    public String t2(){
        //http://shop-sms/send
        String s=smsService.send();
        return "用户服务调用短信服务 结果:"+s;
    }
    @RequestMapping("test3")
    public String t3(String tel){
        SmsDTO smsDTO = new SmsDTO();
        smsDTO.setTel(tel);
        String s=smsService.send2(smsDTO);
        return "用户服务调用短信服务 结果:"+s;
    }

    //spring环境里面的所有数据都可以读取,配置文件都行
    /*这里的jdbc.username需要和配置文件的key保持一致*/
    @Value("${jdbc.username}")
    private String yhm;
    @Value("${jdbc.password}")
    private String password;
    @RequestMapping("config")
    public String config(){
        return "读取的用户名: "+yhm+" ,密码:"+password;
    }
}

1.9 三种情况

1.9.1 更新配置文件后读取内容不刷新

a 启动用户服务

Spring Cloud(微服务)学习篇(五)_第6张图片

b 第一次访问127.0.0.1:8010/config地址

Spring Cloud(微服务)学习篇(五)_第7张图片

c 更改配置文件中的usename为zhangsan并点击发布按钮

Spring Cloud(微服务)学习篇(五)_第8张图片

d 再次访问127.0.0.1:8010/config地址

Spring Cloud(微服务)学习篇(五)_第9张图片

1.9.2 更新配置文件后读取内容刷新(实时读取最新的配置)

a 变更UserController类
a.1 加上如下注解
@RefreshScope
a.2 完整的UserController类代码
package com.zlz.controller;

import com.zlz.shop.sms.api.dto.SmsDTO;
import com.zlz.shop.sms.api.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
@RefreshScope//动态刷新config
public class UserController {
    @Autowired
    RestTemplate restTemplate;
    @RequestMapping("test")
    public String t(){
        //http://shop-sms/send
        String s=restTemplate.postForObject("http://shop-sms/send", null, String.class);
//        String s=restTemplate.postForObject("http://127.0.0.1:8021/send", null, String.class);
        return "用户服务调用短信服务 结果:"+s;
    }
    //使用oepnFeign的方式发送短信
    @Autowired
    SmsService smsService;
    @RequestMapping("test2")
    public String t2(){
        //http://shop-sms/send
        String s=smsService.send();
        return "用户服务调用短信服务 结果:"+s;
    }
    @RequestMapping("test3")
    public String t3(String tel){
        SmsDTO smsDTO = new SmsDTO();
        smsDTO.setTel(tel);
        String s=smsService.send2(smsDTO);
        return "用户服务调用短信服务 结果:"+s;
    }

    //spring环境里面的所有数据都可以读取,配置文件都行(这些username会在启动项目的时候去读取)
    /*这里的jdbc.username需要和配置文件的key保持一致*/
    @Value("${jdbc.username}")
    private String yhm;
    @Value("${jdbc.password}")
    private String password;
    @RequestMapping("config")
    public String config(){
        return "读取的用户名: "+yhm+" ,密码:"+password;
    }
}
b 启动nacos

Spring Cloud(微服务)学习篇(五)_第10张图片

c 启动用户服务

Spring Cloud(微服务)学习篇(五)_第11张图片

d 第一次访问127.0.0.1:8010/config地址

Spring Cloud(微服务)学习篇(五)_第12张图片

e 更改配置文件中的usename为lisi,并点击发布按钮

Spring Cloud(微服务)学习篇(五)_第13张图片

f 再次访问127.0.0.1:8010/config地址

Spring Cloud(微服务)学习篇(五)_第14张图片

1.9.3 读取指定配置文件的内容

a 新建一个配置shop-user-dev
a.1 点右边的加号,进入新建配置界面,然后填写相关信息

Spring Cloud(微服务)学习篇(五)_第15张图片

a.2 往下翻,点击发布按钮

Spring Cloud(微服务)学习篇(五)_第16张图片

b 更改application.yml(shop-user-server项目)
b.1 加入如下代码
  profiles:
    active: dev #环境,不写读取的就是无环境配置文件 如shop-user.properties,加了啥就会读取啥
b.2 完整的application.yml代码
server:
  port: 8010 #801开头 表示用户集群 用户服务
spring:
  application:
    name: shop-user #项目名称 作为微服务名
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848 #注册中心地址
    config:
      server-addr: 127.0.0.1:8848 #配置中心地址
  profiles:
    active: dev #环境,不写读取的就是无环境配置文件 如shop-user.properties,加了啥就会读取啥
c 重新启动用户服务

Spring Cloud(微服务)学习篇(五)_第17张图片

d 访问127.0.0.1:8010/config地址后

Spring Cloud(微服务)学习篇(五)_第18张图片

你可能感兴趣的:(SpringCloud学习篇,spring,cloud,微服务,学习,配置文件读取的三种情况)