springboot+nacos

1. 这里使用的spring boot版本是2.6.1,为了兼容springcloud,所以spring cloud的版本是2021的。引入依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.vaadin.external.google</groupId>
            <artifactId>android-json</artifactId>
            <version>0.0.20131108.vaadin1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

        <dependency>
            <groupId>com.wisdge</groupId>
            <artifactId>wisdge.web</artifactId>
            <version>1.9.3</version>
        </dependency>
        <dependency>
            <groupId>com.wisdge</groupId>
            <artifactId>wisdge.dataservice</artifactId>
            <version>1.4.6</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.83</version>
            </dependency>
        </dependencies>

    </dependencyManagement>
    <build>
        <finalName>ngs.filter</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

跟nacos有关的依赖就两个,要注意这里引得是alibaba的。

 

还有要注意的一点就是因为springboot版本的问题,在使用bootstrap.yml这个配置文件的时候,需要额外引入一个依赖

 

 这样准备环境就可以了。接下来去配置bootstrap.yml。

nacos-server-addr: localhost:8848
nacos-namespace: public
nacos-config-group: DEFAULT_GROUP

spring:
  application:
    name: LocalTest
  #  profiles:
  #    active: ${env}

  cloud:
    nacos:
      discovery:
        enabled: true
        server-addr: ${nacos-server-addr}
        namespace: ${nacos-namespace}
      config:
        enabled: true # 如果不想使用 Nacos 进行配置管理,设置为 false 即可
        server-addr: ${nacos-server-addr} # Nacos Server 地址
        group: ${nacos-config-group} # 组,默认为 DEFAULT_GROUP
        file-extension: yaml # 配置内容的数据格式,默认为 properties
        namespace: ${nacos-namespace}

spring.application.name即为注册上去的服务名,这里使用的还是nacos默认的命名空间跟组,想修改的话需要在nacos上创建新的命名空间跟组。启动项目发现已经注册上去了

 

 要注意的一点是,这里是做为一个服务,如果要关联起来,起到读nacos上配置的话,需要在配置管理里面加一个对应的配置。

 

 

 

       在这里配置yaml文件会取代本地的yml配置内容,会优先读取nacos里面的配置。曾经就遇到一个问题,本地端口修改为8084,项目注册了服务到nacos上,启动第二个8081端口的项目一直说8081端口被占用。后面才发现是因为nacos的原因,读取的是nacos里面的配置端口。。。

      到这里springboot整合nacos就结束了,简单捋一下过程。引入nacos的相关依赖,配置bootstrap文件,本地启动nacos,再启动项目即可。要注意的是修改nacos上的配置文件,需要重新启动项目才会生效。

 

posted @ 2022-06-23 13:28  写字楼间写字员  阅读(661)  评论(0编辑  收藏  举报