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上的配置文件,需要重新启动项目才会生效。