全书目录

第四十六篇:Micronaut 完全指南 —— 编译期轻装侦察营宇宙

第八章:配置 —— 行军参数必须先登记,不能让每个侦察兵自己猜

1 分钟 179 字 第 856 / 962 个阅读单元

现代服务离不开配置:

  • 服务端口
  • 数据库地址
  • 第三方密钥
  • 环境差异
  • 开关参数

Micronaut 的主路径是 application.ymlapplication.properties

一个常见例子:

yaml
micronaut:
  application:
    name: scout-camp
datasources:
  default:
    url: jdbc:postgresql://localhost:5432/scout
    username: app
    password: secret

读取配置:

java
package example;

import io.micronaut.context.annotation.Value;
import jakarta.inject.Singleton;

@Singleton
public class CampInfoService {

    @Value("${micronaut.application.name}")
    String appName;

    public String currentCamp() {
        return appName;
    }
}

更结构化一点,也可以用配置属性类:

java
package example;

import io.micronaut.context.annotation.ConfigurationProperties;
import io.micronaut.serde.annotation.Serdeable;

@Serdeable
@ConfigurationProperties("camp")
public class CampConfig {
    private String zone;
    private Integer retryCount;

    public String getZone() {
        return zone;
    }

    public void setZone(String zone) {
        this.zone = zone;
    }

    public Integer getRetryCount() {
        return retryCount;
    }

    public void setRetryCount(Integer retryCount) {
        this.retryCount = retryCount;
    }
}

这套机制就像:

侦察营的行动参数先统一登记到作战板,再由不同小队按需读取。

不是每个哨站自己口头传达。