【Java后端】Spring Boot 全局域名替换
发布时间:2026-09-28 | 浏览:1
写一个 Spring Boot 全局域名替换 Demo ,可以直接跑起来验证。
⚙️ 配置文件 application.yml
🛠️ 配置类 AppProperties.java
🌐 控制器 TestController.java
🚀 启动类 DemoApplication.java
这样你只需要在 application.yml 改一处:
那么问题来了?现在这样使用的话,全局每个Controller类里都需要注入这个 AppProperties ,不优雅。
如果每个 Controller 都要用 AppProperties ,那就意味着每个类都要注入一遍。这样虽然符合 Spring 的依赖注入设计,但确实会有点麻烦。
有几种 只需要注入一次,全局就能用 的做法👇:
✅ 方案一:静态常量 + @PostConstruct
在 AppProperties 初始化时,把值放到静态变量里,所有类直接静态调用。
👉 好处:所有类都能直接访问,不需要注入。
👉 缺点:静态变量属于硬编码,测试/Mock 不方便。
✅ 方案二:封装成工具类(推荐一点)
新建一个工具类,注入一次配置,然后全局静态访问。
✅ 方案三:利用 Spring 的 Environment
Spring Boot 本身有个 Environment ,可以随时取配置:
如果不想每个地方都注入,可以同样封装成静态工具类:
如果 配置只在少量地方用 :直接注入 AppProperties 更优雅。
如果 几乎所有 Controller 都要用 :推荐 方案二(DomainHolder 工具类) ,写法简洁,还支持占位符。
如果想最大灵活:用 Environment 封装成工具类。
要不要我帮你写一个 方案二的完整 Demo ,这样所有 Controller 里就不用再注入了?