首页 文章资讯内容详情

SpringCloud注解和配置以及pom依赖说明

2026-06-01 4 花语

本文内容纲要:

在本文中说明了pom依赖可以支持什么功能,以及支持什么注解,引入该依赖可以在application.properties中添加什么配置。

1、SpringCloud的pom依赖

序号 pom依赖 说明 支持注解 支持配置application.properties 1

org.springframework.boot

spring-boot-starter-parent

1.5.16.RELEASE

</parent>

spring-boot-starter-parent是SpringBoot的核心启动器,

包含了自动配置、日志和YAML等大量默认的配置。

引入之后相关的starter引入就不需要添加version配置,

springboot会自动选择最合适的版本进行添加。

@SpringBootApplication

@Configuration

@RequestBody

@RestController

@ComponentScan(basePackages={"com.xx","com.yy"}) server.port=1111 2

org.springframework.cloud

spring-cloud-dependencies

Edgware.SR4

pom

import

</dependencyManagement>

使用dependencyManagement进行版本管理

注意:这里的高版本Edgware.SR4不兼容spring-boot-starter-parent的高版本2.x,只能是1.x的高版本,比如1.5.16.RELEASE 3

org.springframework.boot

spring-boot-starter-web

</dependency>

支持HTTP调用方式,包含了SpringBoot预定义的一些Web开发的常用依赖包

如:spring-webmvc,Tomcat.... 4

org.springframework.cloud

spring-cloud-starter

</dependency> @SpringCloudApplication spring.application.name=eureka-service 5

org.springframework.cloud

spring-cloud-starter-eureka-server

</dependency> eureka注册中心依赖 @EnableEurekaServer

eureka.instance.hostname=localhost

eureka.client.service-url.defaultZone=http://localhost:1111/eureka

eureka.client.fetch-registry=false

eureka.client.fetch-registry=false 6

org.springframework.cloud

spring-cloud-starter-eureka

</dependency> 引入eureka客户端依赖

@EnableDiscoveryClient

@EnableZuulProxy 7

org.springframework.cloud

spring-cloud-starter-ribbon

</dependency> 引入ribbon依赖,用来实现客户端的负载均衡,用在client客户端项目

ribbon.ConnectTimeout=500

ribbon.ReadTimeout=5000

hello-service.ribbon.ConnectTimeout=500 8

org.springframework.cloud

spring-cloud-starter-hystrix

</dependency> 引入hystrix依赖,用来实现服务容错保护。当发现请求的服务端崩溃,就采用容错机制 @EnableCircuitBreaker hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000 9

org.springframework.cloud

spring-cloud-starter-feign

</dependency>

引入feign依赖,包含ribbon负载均衡,也包含Hystrix服务容错。

SpringCloudFeign在构建被@FeignClient注解修饰的服务客户端是,会为每一个客户端都创建一个feign.Logger实例,我们可以利用该日志对象进行Log分析。

@EnableFeignClients

feign.compression.request.enabled=true;

feigan.compression.response.enabled=true; 10

org.springframework.boot

spring-boot-starter-actuator

</dependency> 监控模块,实时和定时监控服务的各项状态和可用性 11

org.springframework.cloud

spring-cloud-starter-zuul

</dependency> 引入zuul依赖,它依赖了spring-boot-starter-actuator/spring-boot-starter-hystrix/spring-boot-starter-ribbon @EnableZuulProxy

zuul.routes.api-a.path=/api-a/**

zuul.routes.api-a.url=http://localhost:9001

zuul.routes.api-a.path=/api-a/**

zuul.routes.api-a.serviceId=hello-service 12

org.springframework.cloud

spring-cloud-config-server

</dependency>

为分布式系统中的基础设施和微服务提供集中化的外部配置支持,分为服务端和客户端两个部分。

比如要访问my_test分支下的spring-cloud-config-file目录下的sam-dev.properties配置文件,访问url:

http://localhost:7001/sam/dev/my_test @EnableConfigServer

#配置Git仓库的地址

spring.cloud.config.server.git.uri=https://gitlab.com/xxx/xxx.git

#配置仓库路径下的相对搜索位置,可以配置多个

spring.cloud.config.server.git.search-paths=spring-cloud-config-file

#这里配置你的Git仓库的用户名

spring.cloud.config.server.git.username=xxx

#这里配置你的Git仓库的密码

spring.cloud.config.server.git.password=123 13

org.springframework.cloud

spring-cloud-starter-config

</dependency> 分布式服务中管理配置文件的客户端,服务端是spring-cloud-config-server @RefreshScope

bootstrap.properties:

#{profile}

spring.cloud.config.profile=dev

#{label}git分支名字

spring.cloud.config.label=master

#configserveruri

spring.cloud.config.uri=http://localhost:7001 14

org.springframework.cloud

spring-cloud-starter-zipkin

</dependency> 在所有需要链路跟踪的项目中都加上这个依赖。 @EnableZipkinServer

除了sleuth本身是链路中心的除外,其余参与链路追踪的分布式系统都需要添加如下配置:

#指定zipkin服务端的url

spring.zipkin.base-url=http://localhost:9411

#设定样本收集的比率为100%

spring.sleuth.sampler.percentage=1.0 15

org.springframework.boot

spring-boot-devtools

1.3.0.RELEASE

provided

true

</dependency> 修改源文件后系统自动重启 16

org.springframework.boot

spring-boot-maven-plugin

</plugin>

告诉Maven包含Spring特定的Maven插件,用于构建和部署SpringBoot应用程序。

注意,这个要放在build->plugins节点下。 17

com.spotify

docker-maven-plugin

0.4.10

java

example

</plugin>

部署以及持续集成。

注意,这个要放在build->plugins节点下。 18

org.springframework.boot

spring-boot-starter-data-jpa

</dependency> 使用JavaPersistenceAPI(JPA)

@Entity//这是一个JPA类

@Table(name="t_user")//映射到哪张表

@Id//主键

@Column(name="user_id",nullable=false)//对应表里哪个字段,不允许为空

@Repository//这是一个DAO类 19

postgresql

postgresql

9.1-901.jdbc4

</dependency> PostgresJDBC驱动程序 20

org.springframework.security

spring-security-rsa

</dependency> 加密解密相关包

spring.datasource.password:"{cipher}d495ce8603af9676450736e119"

spring.cloud.config.server.encrypt.enabled=false

2、SpringCloud相关注解

序号 注解 说明 1 @SpringBootApplication SpringBoot启动类注解,启动类需有main方法 2 @EnableEurekaServer 用来指定该项目为Eureka的服务注册中心 3 @EnableCircuitBreaker 开启断路器,实现服务容错保护 4 @EnableDiscoveryClient 让服务使用eureka服务器实现服务注册和发现 5 @SpringCloudApplication

相当于3个注解:@EnableDiscoveryClient

@SpringBootApplication

@EnableCircuitBreaker 6 @Configuration 相当于定义spring配置文件的xmlns域,以及支持@Bean在本类中的注册。 7 @EnableFeignClients SpringCloudFeign通过@EnableFeignClients来开启springcloudfeign的支持功能不仅包含SpringCloudribbon负责均衡功能,也包含SpringCloudHystrix服务容错功能,还提供了一种声明式的Web服务客户端定义方式。 8 @RequestBody 使接收到的字段值自动映射到注解声明的复合对象中 9 @RestController @RestController=@Controller+@ResponseBody 10 @ComponentScan(basePackages={"com.xx","com.yy"}) 指定扫描包 11 @EnableZuulProxy

开启网关路由服务功能。

注意:一旦要请求的controller类实现了某个接口,恰好这个接口有自定义的@RequestMapping("/xxx")值,那么在发起请求时,完整的url不能省略这个@RequestMapping值:http://localhost:5555/hello-service/xxx/myHello 12 @Bean 向spring容器注册自定义类 13 @EnableConfigServer 开启SpringCloudConfig的服务端功能。为分布式系统中的基础设施和微服务提供集中化的外部配置支持,分为服务端和客户端两个部分。 14 @EnableZipkinServer 用于开启ZipkinServer功能:分布式框架中的如果发生异常可链路追踪. 15

@RequestMapping(value="/url",method=RequestMethod.POST)

publicvoidgetUrl(@PathVariable("name")Stringname){…} 如何动态配置url路径,以及从路径中取值 16 @RefreshScope 对需要刷新的属性使用@Value注解,同时将类使用@RefreshScope注解进行标记

3、SpringCloud的application.properties相关设置

序号 application.properties配置 说明 1 server.port=1111 设置web项目服务端口号 2 spring.application.name=eureka-service 设置服务名称 3 eureka.instance.hostname=localhost 设置服务主机IP 4 eureka.client.register-with-eureka=false false:注册中心不需要注册自己。true(默认):需要注册自己 5 eureka.client.fetch-registry=false false:注册中心不需要去发现服务。true(默认):需要发现服务 6 eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka 设置服务注册中心的URL,这里的${}是占位符。最终显示例如:http://localhost:1111/eureka 7 ribbon.ConnectTimeout=500 全局配置负载均衡超时设置ribbon.<key>=<value> 8 ribbon.ReadTimeout=5000 全局配置负载均衡读超时设置 9 hello-service.ribbon.ConnectTimeout=500 为某服务指定的负载均衡超时设置@FeignClient(value="hello-service") 10 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000 hystrix.command.default.xxx进行全局配置 11 hystrix.command.hello.execution.isolation.thread.timeoutInMilliseconds=5000 hystrix.command.<commandKey>.xxx进行指定配置,这里的<commandKey>可以为方法名 12

feign.compression.request.enabled=true;

feigan.compression.response.enabled=true; 请求压缩配置,支持对请求和响应进行GZIP压缩,以减少通信过程中的性能损耗。 13

zuul.routes.api-a.path=/api-a/**

zuul.routes.api-a.url=http://localhost:9001

zuul.routes.api-a.path=/api-a/**

zuul.routes.api-a.serviceId=hello-service

zuul.routes.hello-service.path=/hello-service/**

zuul.routes.hello-service.serviceId=hello-service

请求示例:http://localhost:5555/api-a/feign-consumer

请到http://localhost:9001这个url地址找**(/feign-consumer)匹配的http接口,因为我把这个url的服务命名为api-a了。

推荐使用serviceId来代替url地址。

注意:zuul.routes.api-a.url=hello-service也能实现功能,但是它不能进行正常的负载均衡和容错保护。

不配置默认路由规则。当zuul.ignored-services=*的时候,所有的服务都不会自动创建路由规则,这个时候需要通过前面的配置进行相关路由配置了。 14

#配置Git仓库的地址

spring.cloud.config.server.git.uri=https://gitlab.com/xxx/xxx.git

#配置仓库路径下的相对搜索位置,可以配置多个

spring.cloud.config.server.git.search-paths=spring-cloud-config-file

#这里配置你的Git仓库的用户名

spring.cloud.config.server.git.username=xxx

#这里配置你的Git仓库的密码

spring.cloud.config.server.git.password=123 SpringCloud自己创建的管理配置中心的服务端配置 15

spring.profiles.active=default

指定服务运行什么配置,比如application-dev.properties,就设置值为dev 16

spring.cloud.config.server.encrypt.enabled=false

显式关闭输出属性的解密。 17

spring.datasource.password:"{cipher}d495ce8603af9676450736e119"

SpringCloud配置服务器要求所有已加密的属性前面加上{cipher}

本文内容总结:

原文链接:https://www.cnblogs.com/zhuwenjoyce/p/9663324.html