SpringCloud 配置使用指导
Nacos 常用配置
1.Maven 依赖配置
<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>
2.服务发现和注册配置
## 除nacos配置以外走线上nacos配置中心,本地开发调试可在当前文件修改覆盖。
spring:
application:
name: @project.name@
profiles:
active: @spring.profiles.active@
cloud:
nacos:
server-addr: @nacos.server.address@
username: @nacos.user.name@
password: @nacos.user.password@
config:
file-extension: yaml
namespace: @nacos.namespace.id@
name: finance
group: FIN_GROUP
shared-configs: # 共享配置
- {data-id: kdaiyu-app.yaml, group: DEFAULT_GROUP, refresh: true}
# extension-configs: # 扩展配置
# - { data-id: finance-xxxx.yaml, group: FIN_GROUP, refresh: true }
discovery:
server-addr: @nacos.server.address@
namespace: @nacos.namespace.id@
group: kdaiyu_GROUP
cluster-name: @nacos.cluster.name@
SpringGateway 常用配置
1.Gateway 网关maven配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<!-- r2dbc 连接池 -->
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-pool</artifactId>
</dependency>
<!--r2dbc mysql 库-->
<dependency>
<groupId>dev.miku</groupId>
<artifactId>r2dbc-mysql</artifactId>
</dependency>
2.路由规则配置
spring:
application:
name: kdaiyu-gateway
cloud:
gateway:
routes:
- id: kdaiyu-main
uri: lb://kdaiyu-main
predicates:
- Path=/api/main/**
filters:
- StripPrefix=1
- id: kdaiyu-custom
uri: lb://kdaiyu-custom
predicates:
- Path=/api/doctor/**
- id: kdaiyu-user
uri: lb://kdaiyu-user
predicates:
- Path=/api/user/**
- id: kdaiyu-business
uri: lb://kdaiyu-business
predicates:
- Path=/api/business/**
globalcors: # 跨域配置
add-to-simple-url-handler-mapping: true # 解决option请求被拦截问题
cors-configurations:
'[/**]':
allowedOrigins: # 允许访问的域名
- "*.kdaiyu.com"
allowedMethods: # 允许的请求类型
- GET
- POST
- PUT
- DELETE
- OPTIONS
allowedHeaders: '*.kdaiyu.com' # 允许headers信息
allowCredentials: true # 是否允许携带Cookies,若allowedOrigins配置*,此处必须false
maxAge: 360000 # 允许跨域检查的有效期
main: # 配置bean 是否允许覆盖或循环引用
allow-bean-definition-overriding: true
allow-circular-references: true
r2dbc:
url: r2dbcs:mysql://10.1.10.21:3306/kdaiyu?SSL=false&sslMode=DISABLED
username: admin
password: Admin@123
pool:
enabled: false
max-size: 10
max-idle-time: 30
max-create-connection-time: 1000
webflux:
base-path: /api
3.服务器及HTTPS配置
server:
port: 443
error:
whitelabel:
enabled: true
ssl:
enabled: true
key-store: classpath:kdaiyu.com.pfx
key-store-password: Bdi2389!
key-store-type: EDf232
4.SpringSecurity及其他配置
kdaiyu:
gateway:
token: EWEIJFWEW<E#*@#SDN
ignore-urls: /health,/health/*,/auth/login,/main/register
SpringBoot 服务公共配置
spring:
cloud:
config: # nacos是否允许覆盖,本地优先
allow-override: true
override-none: true
override-system-properties: true
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://10.1.10.21:3306/kdaiyu?useUnicode=true&characterEncoding=UTF-8
username: admin
password: Admin@123
druid:
max-active: 10
min-idle: 2
initial-size: 5
max-wait: 2000
max-wait-thread-count: 20
stat-view-servlet:
enabled: true
login-username: root
login-password: dev@123
redis:
host: 10.1.10.21
port: 6379
password: 123456
connect-timeout: 15000
database: 0
jedis:
pool:
max-idle: 100
min-idle: 10
enabled: true
max-wait: 1000
max-active: 8000
feign:
okhttp:
enabled: true
mybatis-flex:
mapper-locations: classpath*:com/kdaiyu/**/mapper/*.xml
global-config:
print-sql: false
print-banner: false
normal-value-of-logic-delete: n
deleted-value-of-logic-delete: y
logic-delete-column: del_flag
OpenFeign 配置
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
<groupId>io.github.openfeign</groupId>
<artifactId>feign-okhttp</artifactId>
</dependency>