现代服务离不开配置:
- 服务端口
- 数据库地址
- 第三方密钥
- 环境差异
- 开关参数
Micronaut 的主路径是 application.yml 或 application.properties。
一个常见例子:
micronaut:
application:
name: scout-camp
datasources:
default:
url: jdbc:postgresql://localhost:5432/scout
username: app
password: secret读取配置:
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;
}
}更结构化一点,也可以用配置属性类:
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;
}
}这套机制就像:
侦察营的行动参数先统一登记到作战板,再由不同小队按需读取。
不是每个哨站自己口头传达。