SpringBoot интегрирует Nacos

Spring Boot задняя часть

Это первый раз, когда я участвую в Gengwen Challenge.18День, подробности о событии уточняйте:Обновить вызов

Со временем капли воды и камни изнашиваются 😄

В предыдущей статье автор представил, как установить Nacos, Адрес статьи:Установка NACOS.С этого началось главное событие.

Соберите проект SpringBoot

image.png

добавить зависимости

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

nacos-configЭта зависимость эквивалентнаSpringCloud Config,nacos-discoveryЭта зависимость эквивалентнаEureka.

Центр конфигурации

先将nacos-discovery依赖进行注释,先来实现configСоздать в проектеbootstrap.ymlфайл, добавьте следующую конфигурацию:

spring:
  application:
  #服务名称
    name: naocs-service
  profiles:
    active: dev
  cloud:
    nacos:
      config:
      # 配置文件的环境
        group: ${spring.profiles.active}
      # 配置文件的格式
        file-extension: yaml
       # 配置中心的地址
        server-addr: 47.105.198.54:8848
      # 配置文件prefix
        prefix: ${spring.application.name}
     #命名空间
        namespace: mall

Затем войдите в nacos, выберите управление конфигурацией на странице nacos и создайте файл конфигурации.image.png

Здесь нужно настроить три основных параметра: DataID, Group и контент, который нужно настроить.

Полный формат идентификатора данных:${prefix}-${spring.profile.active}.${file-extension}.

  • ${prefix}Значение по умолчаниюspring.application.nameЗначение также можно передать через элемент конфигурацииspring.cloud.nacos.config.prefixнастроить.
  • ${spring.profile.active} : соответствует текущей средеprofile, Примечание: когдаspring.profiles.activeКогда он пуст, соответствующий коннектор - также не будет существовать, и формат конкатенации DataID станет${prefix}.${file-extension}.
  • ${file-extension}Указывает расширение файла конфигурации, которое можно передать через элемент конфигурацииspring.cloud.nacos.config.file-extensionнастроить. В настоящее время поддерживается толькоpropertiesиyamlтип.

Группа — это тоже группа, и в этой статье она разделена по среде. Такие как dev, test, uat.image.pngКонфигурация автора:

  • Идентификатор данных: naocs-service-dev.yaml

  • Группа: разработчик

  • Новое пространство имен

image.png

Контроллер, предоставляющий тесты

@RestController
@RefreshScope   // 动态刷新
public class HelloController {

    @Value("${name}")
    private String name;
    @GetMapping
    public String hell(){
        return name;
    }
}

Затем вызовите интерфейс:http://localhost:8080/hello

image.png

Регистрационный центр

将nacos-discovery依赖注释放开. затем вbootstrap.ymlдокументnacosУзел at увеличился следующим образом:

      discovery:
        server-addr: 47.105.198.54:8848
        group: ${spring.profiles.active}
        namespace: mall

Запустите проект и войдите в NACO. можно увидетьУправление услугами -> Список услугЕсть информация о зарегистрированных сервисах.image.png

Загрузить несколько файлов конфигурации

В реальной разработке мы не можем поместить все конфигурации в один и тот же файл конфигурации одновременно, что может показаться слишком сложным и сложным.

product-dev.yaml

новыйproduct-dev.yamlфайл, конечно, вы также можете использовать файл выше.

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    #MySQL配置
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://47.105.198.54:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: xxxx
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss #如果使用字符串表示,用这行设置格式
    timezone: GMT+8
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Далее я будуproduct-dev.yamlКонфигурация в разделена, чтобы статьdatasource-dev.yaml,mybatis-plus-dev.yaml.

datasource-dev.yaml

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    # MySQL配置
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://47.105.198.54:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: xxxx

mybatis-plus-dev.yaml

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

потом в приложенииbootstrap.ymlвнутреннийconfigДобавьте конфигурацию под нодой:

spring:
  profiles:
    active: ${DEPLOY_ENV}
  application:
    name: product
  cloud:
    nacos:
      config:
        group: ${spring.profiles.active}
        file-extension: yaml
        server-addr: ${NACOS}
        prefix: ${spring.application.name}
        namespace: ${nacos.client.namespace}
        extension-configs:
          - dataId: datasource-${spring.profiles.active}.yaml
            group: ${spring.profiles.active}
            #是否自动刷新
            refresh: true
          - dataId: mybatis-plus-${spring.profiles.active}.yaml
            group: ${spring.profiles.active}
            refresh: true

Уведомление:${DEPLOY_ENV},${NACOS}Эти две конфигурации являются конфигурациями запуска., соответствующий среде загрузки, такой как dev, адрес Nacos, например 47.105.198.54:8848.