1. SpringBoot配置全解析:从入门到精通
作为Java开发者最常用的框架之一,SpringBoot的配置系统是其"约定优于配置"理念的核心体现。我在实际项目中发现,90%的SpringBoot新手问题都源于对配置机制理解不透彻。本文将带你深入SpringBoot配置的每个细节,涵盖properties与yml的对比、多环境配置、敏感信息处理等实战要点。
2. 配置文件基础:properties vs yml
2.1 语法格式对比
properties文件采用传统的键值对格式:
properties复制server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/demo
spring.datasource.username=root
而YAML则采用缩进层级结构:
yaml复制server:
port: 8080
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://localhost:3306/demo
username: root
关键选择:YAML在表达复杂层级结构时更清晰,但properties对IDE支持更友好。我建议微服务项目使用YAML,简单单体应用可以用properties。
2.2 特殊语法处理
YAML中需要注意:
- 布尔值用true/false(不带引号)
- 字符串默认不需要引号,包含特殊字符时用单引号
- 列表用短横线表示:
yaml复制spring: profiles: active: - dev - test
properties中列表需用逗号分隔:
properties复制spring.profiles.active=dev,test
3. 多环境配置实战
3.1 标准方案:profile-specific文件
创建不同环境的配置文件:
code复制application-dev.yml
application-test.yml
application-prod.yml
通过启动参数激活:
bash复制java -jar myapp.jar --spring.profiles.active=prod
3.2 高级技巧:profile叠加
基础配置(application.yml):
yaml复制spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
maximum-pool-size: 10
开发环境补充(application-dev.yml):
yaml复制spring:
datasource:
url: jdbc:mysql://dev-db:3306/app
username: dev_user
生产环境补充(application-prod.yml):
yaml复制spring:
datasource:
url: jdbc:mysql://prod-db:3306/app
username: prod_user
hikari:
maximum-pool-size: 50 # 覆盖基础配置
4. 敏感信息处理方案
4.1 环境变量注入
在yml中使用环境变量:
yaml复制spring:
datasource:
password: ${DB_PASSWORD}
启动时传入:
bash复制export DB_PASSWORD=secret
java -jar app.jar
4.2 Jasypt加密(推荐)
- 添加依赖:
xml复制<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
- 加密敏感信息:
java复制String encrypted = new StandardPBEStringEncryptor()
.encrypt("rawPassword", "encryptionKey");
- 配置文件使用:
yaml复制spring:
datasource:
password: ENC(加密后的字符串)
- 启动时传入密钥:
bash复制java -jar app.jar --jasypt.encryptor.password=mySecretKey
5. 配置加载优先级详解
SpringBoot配置加载顺序(从高到低):
- 命令行参数(--key=value)
- JNDI属性
- Java系统属性(System.getProperties())
- 操作系统环境变量
- 随机属性(random.*)
- 应用外的profile-specific配置文件
- 应用内的profile-specific配置文件
- 应用外的默认配置文件
- 应用内的默认配置文件
- @Configuration类上的@PropertySource
- 默认属性(SpringApplication.setDefaultProperties)
实测经验:命令行参数优先级最高,适合临时覆盖配置。生产环境推荐将关键配置放在外部配置文件(如/config/application.yml),避免打包后修改。
6. 自定义配置与类型安全
6.1 @Value基础用法
java复制@Value("${server.port}")
private int port;
@Value("${feature.enabled:false}") // 默认值
private boolean featureEnabled;
6.2 类型安全配置(推荐)
java复制@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String name;
private List<String> whitelist;
private Map<String, String> endpoints;
// getters/setters
}
对应配置:
yaml复制app:
name: "MyApp"
whitelist:
- "192.168.1.1"
- "10.0.0.1"
endpoints:
user: "/api/users"
product: "/api/products"
7. 常见问题排查指南
7.1 配置未生效检查清单
- 检查配置文件是否在classpath下
- 确认文件名格式正确(application-{profile}.yml)
- 检查属性拼写(注意中划线/下划线区别)
- 查看生效的配置源:
java复制@Autowired private ConfigurableEnvironment env; env.getPropertySources().forEach(ps -> System.out.println(ps.getName()));
7.2 YAML解析错误处理
典型错误:
yaml复制spring:
datasource: url: jdbc:mysql://localhost/db # 缺少缩进
解决方案:
- 使用在线YAML验证工具(如yamlvalidator.com)
- IDE安装YAML插件(如IntelliJ的YAML/Ansible支持)
7.3 属性覆盖陷阱
案例:application.yml和bootstrap.yml中都定义了spring.application.name
原理:Spring Cloud项目会先加载bootstrap.yml,后加载application.yml。常规SpringBoot项目会忽略bootstrap.yml。
8. 高级配置技巧
8.1 条件化配置
java复制@Bean
@ConditionalOnProperty(name = "cache.enabled", havingValue = "true")
public CacheManager cacheManager() {
return new ConcurrentMapCacheManager();
}
8.2 动态刷新配置
- 添加依赖:
xml复制<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
- 启用刷新:
java复制@RefreshScope
@RestController
public class MyController {
@Value("${dynamic.value}")
private String value;
}
- 调用刷新端点:
bash复制POST /actuator/refresh
8.3 配置元数据支持
在自定义属性上添加注解:
java复制@ConfigurationProperties(prefix = "app")
@ConstructorBinding
public class AppProperties {
/**
* 应用名称
*/
private final String name;
// ...
}
生成元数据(META-INF/spring-configuration-metadata.json)后,IDE会提供属性提示和文档。
9. 配置最佳实践
-
分层策略:
- 基础配置:application.yml(通用设置)
- 环境配置:application-{env}.yml(环境差异)
- 本地开发:application-local.yml(.gitignore)
-
敏感信息管理:
- 永远不要提交含密码的配置文件
- 使用git-secrets等工具防止误提交
- K8s环境推荐使用Secret资源
-
配置监控:
yaml复制management: endpoints: web: exposure: include: configprops,env访问/actuator/configprops查看生效配置
-
性能调优:
- 减少@RefreshScope使用(会创建代理类)
- 复杂对象推荐用@ConfigurationProperties而非@Value
- 高频访问属性可缓存到局部变量
10. 典型配置示例
10.1 数据库+HikariCP配置
yaml复制spring:
datasource:
url: jdbc:mysql://localhost:3306/demo
username: user
password: pass
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
pool-name: MyHikariPool
maximum-pool-size: 20
minimum-idle: 5
idle-timeout: 30000
max-lifetime: 1800000
connection-timeout: 30000
10.2 Redis配置
yaml复制spring:
redis:
host: redis-server
port: 6379
password: ${REDIS_PASSWORD}
lettuce:
pool:
max-active: 20
max-idle: 10
min-idle: 5
10.3 跨域配置
yaml复制spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
web:
cors:
mappings:
"/api/**":
allowed-origins: "https://example.com"
allowed-methods: "GET,POST"
max-age: 3600
11. 配置测试验证
11.1 测试环境隔离
java复制@TestPropertySource(properties = {
"spring.datasource.url=jdbc:h2:mem:testdb",
"spring.jpa.hibernate.ddl-auto=create-drop"
})
@SpringBootTest
public class MyIntegrationTests {
// ...
}
11.2 配置断言测试
java复制@Autowired
private Environment env;
@Test
void testConfigLoaded() {
assertThat(env.getProperty("app.name"))
.isEqualTo("MyApp");
}
12. 配置迁移与转换
12.1 properties转YAML工具
- 在线工具:YAML Converter
- IntelliJ内置转换:
- 右键properties文件 → Convert to YAML
- 命令行工具:
bash复制python -c 'import sys,yaml,re; print(yaml.dump(dict(re.findall(r"(.+?)=(.+)", sys.stdin.read()))))' < application.properties
12.2 配置版本管理策略
- 使用配置服务器(Spring Cloud Config)
- 配置文件与代码同仓库但不同分支
- 重大变更时保留旧版本配置三个月
13. 生产环境配置要点
-
外部化配置:
bash复制
java -jar app.jar --spring.config.location=file:/etc/app/config/目录结构:
code复制/etc/app/config/ ├── application.yml └── application-prod.yml -
配置健康检查:
yaml复制management: health: config: enabled: true -
配置变更审计:
java复制@EventListener public void handleRefresh(EnvironmentChangeEvent event) { log.info("配置变更:{}", event.getKeys()); }
14. 配置优化经验
-
启动加速:
- 减少不必要的@ConfigurationProperties类
- 使用spring.config.location明确指定配置文件位置
-
内存优化:
- 大尺寸配置考虑用@Lazy初始化
- 避免在配置类中加载大量静态数据
-
调试技巧:
bash复制
java -jar app.jar --debug查看自动配置报告:
code复制========================= AUTO-CONFIGURATION REPORT =========================
15. 配置安全加固
-
敏感属性过滤:
yaml复制management: endpoint: env: keys-to-sanitize: password,secret,key -
配置访问控制:
yaml复制spring: security: user: name: admin password: ${ACTUATOR_PASSWORD} roles: ACTUATOR -
配置签名验证:
bash复制
openssl dgst -sha256 application.yml
16. 配置与功能开关
16.1 功能开关配置
yaml复制features:
newCheckout: true
legacyReport: false
16.2 动态开关实现
java复制@Configuration
@RefreshScope
public class FeatureConfig {
@Value("${features.newCheckout:false}")
private boolean newCheckoutEnabled;
public boolean isNewCheckoutEnabled() {
return newCheckoutEnabled;
}
}
17. 配置与日志整合
17.1 日志级别动态调整
yaml复制logging:
level:
root: INFO
com.myapp: DEBUG
org.springframework.web: WARN
17.2 运行时修改日志级别
bash复制POST /actuator/loggers/com.myapp
{
"configuredLevel": "DEBUG"
}
18. 国际化配置管理
18.1 多语言消息配置
properties复制# messages.properties
welcome.message=Welcome
# messages_zh_CN.properties
welcome.message=欢迎
18.2 区域解析配置
java复制@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.US);
return slr;
}
19. 配置与监控集成
19.1 Prometheus监控配置
yaml复制management:
endpoints:
web:
exposure:
include: prometheus,health,info
metrics:
tags:
application: ${spring.application.name}
19.2 自定义指标配置
java复制@Configuration
public class MetricsConfig {
@Bean
public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> registry.config()
.commonTags("region", System.getenv("REGION"));
}
}
20. 配置与缓存整合
20.1 缓存配置示例
yaml复制spring:
cache:
type: redis
redis:
time-to-live: 1800s
cache-null-values: false
20.2 多缓存管理器配置
java复制@Configuration
@EnableCaching
public class CacheConfig {
@Bean
@Primary
public CacheManager localCache() {
return new ConcurrentMapCacheManager("products");
}
@Bean
public RedisCacheManager redisCache(RedisConnectionFactory factory) {
return RedisCacheManager.create(factory);
}
}
21. 配置验证与约束
21.1 属性值校验
java复制@ConfigurationProperties(prefix = "app")
@Validated
public class AppProperties {
@NotNull
private String name;
@Min(1)
@Max(65535)
private int port;
}
21.2 自定义验证器
java复制public class ConnectionPropertiesValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return ConnectionProperties.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
// 自定义验证逻辑
}
}
22. 配置与测试数据
22.1 测试专用配置
java复制@Profile("test")
@Configuration
public class TestConfig {
@Bean
public DataSource testDataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.build();
}
}
22.2 配置Mock示例
java复制@TestConfiguration
public class MockConfig {
@Bean
@Primary
public PaymentService mockPaymentService() {
return mock(PaymentService.class);
}
}
23. 配置与部署模式
23.1 Docker环境配置
yaml复制spring:
datasource:
url: jdbc:mysql://${DB_HOST:localhost}:3306/db
23.2 K8s ConfigMap集成
yaml复制apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
application.yml: |
spring:
profiles: prod
datasource:
url: jdbc:mysql://prod-db:3306/app
24. 配置版本兼容性
24.1 版本回退策略
- 保留最近3个版本的配置文件
- 重大变更时使用新属性名而非修改现有属性
- 弃用属性保留至少两个版本周期
24.2 跨版本配置迁移
bash复制# 从Spring Boot 2.x迁移到3.x时
find . -name "*.yml" -exec sed -i 's/server.servlet.context-path/server.servlet.application-display-name/g' {} \;
25. 配置性能监控
25.1 配置加载耗时监控
java复制@Bean
public ApplicationListener<ApplicationReadyEvent> configLoadMonitor() {
return event -> {
long loadTime = System.currentTimeMillis() - event.getTimestamp();
Metrics.counter("config.load.time").increment(loadTime);
};
}
25.2 配置缓存命中率
java复制@Bean
public MeterBinder configurationCacheMetrics(Environment environment) {
return registry -> {
Gauge.builder("config.cache.hits", () -> {
if (environment instanceof ConfigurableEnvironment) {
return ((ConfigurableEnvironment) environment)
.getPropertySources().stream()
.filter(ps -> ps instanceof MapPropertySource)
.count();
}
return 0;
}).register(registry);
};
}
26. 配置与AOP整合
26.1 配置驱动的切面
java复制@Aspect
@Component
@ConditionalOnProperty("aop.logging.enabled")
public class LoggingAspect {
@Before("execution(* com.myapp.service.*.*(..))")
public void logMethodCall(JoinPoint jp) {
log.info("调用方法: " + jp.getSignature());
}
}
26.2 动态切点配置
yaml复制aop:
monitoring:
enabled: true
pointcuts:
- "execution(* com.myapp.service.UserService.*(..))"
- "execution(* com.myapp.service.ProductService.get*(..))"
27. 配置与调度任务
27.1 定时任务配置
yaml复制app:
schedules:
reportGeneration: "0 0 2 * * ?" # 每天凌晨2点
dataCleanup: "0 0 4 * * ?"
27.2 动态调度控制
java复制@Scheduled(cron = "${app.schedules.reportGeneration}")
public void generateReport() {
if (config.isReportEnabled()) {
// 生成报告
}
}
28. 配置与消息队列
28.1 RabbitMQ配置
yaml复制spring:
rabbitmq:
host: rabbitmq-server
port: 5672
username: ${RABBIT_USER}
password: ${RABBIT_PASS}
listener:
simple:
concurrency: 5
max-concurrency: 10
28.2 Kafka配置
yaml复制spring:
kafka:
bootstrap-servers: kafka1:9092,kafka2:9092
consumer:
group-id: my-group
auto-offset-reset: earliest
producer:
acks: all
29. 配置与API文档
29.1 Swagger配置
yaml复制springdoc:
swagger-ui:
path: /api-docs
operations-sorter: alpha
api-docs:
path: /v3/api-docs
29.2 环境差异化文档
java复制@Profile("!prod")
@Configuration
public class DevApiConfig {
@Bean
public OpenAPI devOpenAPI() {
return new OpenAPI().info(/* 开发环境特有信息 */);
}
}
30. 配置与安全策略
30.1 安全头配置
yaml复制security:
headers:
content-security-policy: "default-src 'self'"
xss-protection: "1; mode=block"
frame-options: DENY
30.2 动态权限配置
yaml复制security:
roles:
admin: "/admin/**"
user: "/api/**"
public: "/public/**"
31. 配置与数据库迁移
31.1 Flyway配置
yaml复制spring:
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true
table: schema_version
31.2 Liquibase配置
yaml复制spring:
liquibase:
change-log: classpath:db/changelog/master.xml
contexts: dev
default-schema: public
32. 配置与性能调优
32.1 Tomcat调优
yaml复制server:
tomcat:
max-threads: 200
min-spare-threads: 10
accept-count: 100
connection-timeout: 5000
32.2 响应压缩配置
yaml复制server:
compression:
enabled: true
mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
min-response-size: 1024
33. 配置与前端集成
33.1 静态资源缓存
yaml复制spring:
web:
resources:
cache:
period: 365d
cachecontrol: max-age=31536000
33.2 跨域配置
yaml复制app:
cors:
allowed-origins:
- "https://example.com"
- "https://api.example.com"
allowed-methods: GET,POST,PUT,DELETE
34. 配置与批处理
34.1 Spring Batch配置
yaml复制spring:
batch:
job:
enabled: false # 手动触发作业
initialize-schema: always
table-prefix: BATCH_
34.2 批处理参数配置
java复制@Bean
@StepScope
public ItemReader<Data> reader(
@Value("#{jobParameters['inputFile']}") String file) {
return new FlatFileItemReaderBuilder<Data>()
.name("dataReader")
.resource(new FileSystemResource(file))
.build();
}
35. 配置与云原生
35.1 云平台检测
yaml复制spring:
cloud:
platform: kubernetes
35.2 服务发现配置
yaml复制spring:
cloud:
consul:
host: consul-server
port: 8500
discovery:
service-name: my-service
36. 配置与响应式编程
36.1 WebFlux配置
yaml复制spring:
webflux:
base-path: /api/v2
36.2 响应式数据库
yaml复制spring:
data:
r2dbc:
url: r2dbc:postgresql://localhost/test
username: user
password: pass
37. 配置与GraphQL
37.1 GraphQL端点配置
yaml复制spring:
graphql:
graphiql:
enabled: true
path: /graphiql
path: /graphql
37.2 查询缓存配置
yaml复制graphql:
query-cache:
max-size: 1000
expire-after-write: 1h
38. 配置与函数式计算
38.1 函数式Bean定义
yaml复制app:
functions:
- name: uppercase
input-type: String
output-type: String
38.2 函数路由配置
java复制@Bean
public Function<Flux<String>, Flux<String>> uppercase() {
return flux -> flux.map(String::toUpperCase);
}
39. 配置与Serverless
39.1 AWS Lambda配置
yaml复制cloud:
function:
definition: uppercase;reverse
aws:
region: us-east-1
lambda:
endpoint: http://localhost:4574
39.2 函数超时配置
yaml复制spring:
cloud:
function:
timeout: 30000
40. 配置与持续交付
40.1 部署标记配置
yaml复制info:
app:
version: @project.version@
build:
time: @build.time@
commit: @git.commit.id@
40.2 环境验证配置
java复制@Bean
@Profile("!test")
public ApplicationRunner envValidator(Environment env) {
return args -> {
if (!env.containsProperty("REQUIRED_VAR")) {
throw new IllegalStateException("缺少必要环境变量");
}
};
}
41. 配置与可观测性
41.1 分布式追踪
yaml复制spring:
sleuth:
sampler:
probability: 1.0
zipkin:
base-url: http://zipkin-server:9411
41.2 日志追踪ID
yaml复制logging:
pattern:
level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]"
42. 配置与混沌工程
42.1 故障注入配置
yaml复制resilience4j:
circuitbreaker:
instances:
backendA:
failureRateThreshold: 50
waitDurationInOpenState: 5000
42.2 延迟模拟配置
yaml复制chaos:
latency:
enabled: true
routes:
- path: /api/**
delay: 500ms
jitter: 200ms
43. 配置与AI集成
43.1 TensorFlow配置
yaml复制ai:
tensorflow:
model-path: classpath:models/my-model.pb
threads: 4
43.2 机器学习特征配置
yaml复制features:
normalization:
min: 0
max: 1
encoding:
categories: [A, B, C]
44. 配置与区块链
44.1 智能合约配置
yaml复制blockchain:
contract:
address: "0x123..."
abi-path: classpath:contracts/MyContract.json
44.2 节点连接配置
yaml复制web3j:
client-address: http://localhost:8545
poll-interval: 1000
45. 配置与物联网
45.1 MQTT配置
yaml复制spring:
mqtt:
url: tcp://mqtt-server:1883
username: ${MQTT_USER}
password: ${MQTT_PASS}
client-id: ${HOSTNAME}
45.2 设备影子配置
yaml复制iot:
shadow:
update-interval: 60s
timeout: 10s
46. 配置与边缘计算
46.1 边缘节点配置
yaml复制edge:
node-id: ${HOSTNAME}
cluster:
nodes:
- edge1:8080
- edge2:8080
46.2 本地缓存配置
yaml复制cache:
edge:
size: 100MB
ttl: 1h
47. 配置与量子计算
47.1 量子模拟器配置
yaml复制quantum:
simulator:
type: qiskit
backend: aer_simulator
shots: 1024
47.2 量子算法参数
yaml复制algorithm:
grover:
iterations: 5
qft:
size: 8
48. 配置与AR/VR
48.1 3D模型配置
yaml复制ar:
models:
- id: chair
path: classpath:models/chair.glb
scale: 0.5
48.2 场景配置
yaml复制vr:
scene:
lighting:
intensity: 1.2
color: "#ffffff"
49. 配置与数字孪生
49.1 孪生模型配置
yaml复制digital-twin:
model:
uri: http://modelserver/twin1
update-interval: 10s
49.2 同步策略配置
yaml复制sync:
strategy: optimistic
retry:
max-attempts: 3
delay: 1s
50. 配置与元宇宙
50.1 虚拟世界配置
yaml复制metaverse:
world:
id: my-world
physics:
gravity: 9.8
fps: 90
50.2 虚拟物品配置
yaml复制nft:
items:
- id: sword
contract: 0x123...
token-id: 42
51. 配置与生物识别
51.1 面部识别配置
yaml复制biometrics:
face:
model: classpath:models/face.onnx
threshold: 0.85
51.2 指纹识别配置
yaml复制fingerprint:
scanner:
type: optical
dpi: 500
52. 配置与自动驾驶
52.1 感知模块配置
yaml复制autonomous:
perception:
lidar:
range: 100m
channels: 64
52.2 决策参数配置
yaml复制decision:
safety-distance: 2.5m
max-speed: 120kmh
53. 配置与机器人
53.1 运动控制配置
yaml复制robot:
kinematics:
type: scara
speed-limit: 0.5m/s
53.2 传感器配置
yaml复制sensors:
- type: lidar
rate: 10Hz
range: 4m
54. 配置与卫星通信
54.1 地面站配置
yaml复制satcom:
ground-station:
latitude: 34.05
longitude: -118.25
54.2 卫星链路配置
yaml复制link:
frequency: 12GHz
bandwidth: 10MHz
55. 配置与医疗设备
55.1 医疗影像配置
yaml复制medical:
imaging:
dicom:
storage-path: /data/dicom
compression: jpeg-lossless
55.2 生命体征配置
yaml复制vitals:
sampling-rate: 100Hz
normal-range:
heart-rate: [60, 100]
spo2: [95, 100]
56. 配置与工业4.0
56.1 PLC连接配置
yaml复制industry:
plc:
type: siemens-s7
ip: 192.168.1.100
rack: 0
slot: 1
56.2 OPC UA配置
yaml复制opcua:
endpoint: opc.tcp://server:4840
security-policy: Basic256Sha256
57. 配置与农业科技
57.1 智能灌溉配置
yaml复制agriculture:
irrigation:
schedule:
- time: 06:00
duration: 30m
- time: 18:00
duration: 20m
57.2 土壤监测配置
yaml复制soil:
sensors:
- type: moisture
threshold: 30%
- type: ph
range: [5.5, 7.0]
58. 配置与能源管理
58.1 太阳能配置
yaml复制energy:
solar:
panel:
efficiency: 22%
capacity: 5kW
58.2 电网连接配置
yaml复制grid:
voltage: 220V
frequency: 50Hz
feed-in-tariff: 0.12
59. 配置与环保科技
59.1 空气质量监测
yaml复制environment:
air:
pollutants:
- pm2.5
- pm10
- co2
threshold:
pm2.5: 35μg/m³
59.2 垃圾分类配置
yaml复制waste:
categories:
- name: recyclable
color: blue
- name: hazardous
color: red
60. 配置与金融科技
60.1 支付网关配置
yaml复制payment:
gateway:
endpoint: https://api.payment.com
timeout: 10s
retry:
max-attempts: 3
delay: 1s
60.2 风控参数配置
yaml复制risk:
fraud:
threshold: 0.85
rules:
- max-amount: 10000
- velocity: 5/1h
61. 配置与电子商务
61.1 推荐系统配置
yaml复制ecommerce:
recommendation:
model: classpath:models/rec.onnx
top-n: 5
61.2 购物车配置
yaml复制cart:
timeout: 30m
max-items: 50
62. 配置与社交网络
62.1 内容审核配置
yaml复制social:
moderation:
api-key: ${MODERATION_KEY}
languages: [en, zh]
62.2 好友推荐配置
yaml复制recommendation:
friend:
max-suggestions: 10
min-common-friends: 3
63. 配置与在线教育
63.1 视频转码配置
yaml复制education:
video:
formats:
- quality: 720p
bitrate: 1500k
- quality: 480p
bitrate: 800k
63.2 考试防作弊
yaml复制proctoring:
enabled: true
checks:
- face-detection
- tab-sw
