基于Spring的全家桶,当前比较流行的基于Spring Cloud的分布式微服务架构,但是根据查阅资料并理解,Spring Cloud应该是用于分布式部署的一个架构,我们各种业务实现还是要借助Spring Boot,所有项目中是需要Spring Boot和Spring Cloud,在此记录一下本地可以正常启动的pom配置信息。
Spring Boot parent配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
再加Spring Cloud
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
dependencyManagement和另外的dependencies是区分开来的,即pom文件中会有如下的格式
<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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR9</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
配置文件bootstrap.yml如下:
spring:
profiles:
active: dev
配置文件bootstrap-dev.yml如下(使用nacos作为配置文件):
spring:
main:
allow-bean-definition-overriding: true
application:
name: spring-cloud-demo
cloud:
nacos:
config:
enabled: true
file-extension: yml
server-addr: localhost:8848
refresh-enabled: true
group: demo
namespace: demo
logging:
level:
com:
alibaba:
nacos:
client:
naming: error
注意:
1、在nacos需要创建命名空间为:demo,创建配置文件spring-cloud-demo-dev.yml,分组为demo。在配置文件中配置数据库连接。(nacos搭建可以参考官网文档:https://nacos.io/zh-cn/index.html)
2、Spring Boot和Spring Cloud版本需要使用对应的,如果使用的其他的版本的,需要注意版本兼容问题。版本对应信息访问Spring官网查看(https://spring.io/projects/spring-cloud#overview),也可以参考下图(2021年3月8日)。
image.png
以上说明是本地测试可以正常通过nacos读取配置信息启动。