# 服务器URL配置重构总结 ## 概述 将项目中硬编码的服务器地址 `https://server.gxwebsoft.com/api` 改为从配置文件读取,提高了代码的可维护性和灵活性。 ## 修改的文件 ### 1. RequestUtil.java **文件路径**: `src/main/java/com/gxwebsoft/common/core/utils/RequestUtil.java` **修改内容**: - 添加了 `ConfigProperties` 依赖注入 - 移除了硬编码的 `host` 常量 - 添加了 `getServerUrl()` 方法 - 将所有 `host.concat(path)` 替换为 `getServerUrl().concat(path)` **影响的方法**: - `balancePay()` - `getUserByPhone()` - `getByUserId()` - `saveUserByPhone()` - `updateUserBalance()` - `getParent()` - `updateUser()` - `getMpOrderQrCode()` - `getOrderQRCodeUnlimited()` - `updateUserMerchantId()` - `getWxConfig()` ### 2. JwtAuthenticationFilter.java **文件路径**: `src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java` **修改内容**: - 将硬编码的URL `"https://server.gxwebsoft.com/api/auth/user"` - 改为 `configProperties.getServerUrl() + "/auth/user"` ### 3. OaAppController.java **文件路径**: `src/main/java/com/gxwebsoft/oa/controller/OaAppController.java` **修改内容**: - 添加了 `ConfigProperties` 依赖注入 - 将硬编码的URL `"https://server.gxwebsoft.com/api/file/page"` - 改为 `configProperties.getServerUrl() + "/file/page"` ### 4. SwaggerConfig.java **文件路径**: `src/main/java/com/gxwebsoft/common/core/config/SwaggerConfig.java` **修改内容**: - 将硬编码的URL `"https://server.gxwebsoft.com/api/system"` - 改为 `config.getServerUrl() + "/system"` ### 5. WxOfficialUtil.java **文件路径**: `src/main/java/com/gxwebsoft/common/core/utils/WxOfficialUtil.java` **修改内容**: - 将硬编码的URL `"https://server.gxwebsoft.com/api/open/wx-official/accessToken"` - 改为 `pathConfig.getServerUrl() + "/open/wx-official/accessToken"` ### 6. ShopOrderServiceImpl.java **文件路径**: `src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderServiceImpl.java` **修改内容**: - 将微信支付回调地址中的硬编码URL - 从 `"https://server.gxwebsoft.com/api/system/wx-pay/notify/"` - 改为 `config.getServerUrl() + "/system/wx-pay/notify/"` ## 配置文件设置 ### 开发环境 (application-dev.yml) ```yaml config: server-url: http://127.0.0.1:9091/api ``` ### 生产环境 (application-prod.yml) ```yaml config: server-url: https://server.gxwebsoft.com/api ``` ### 默认配置 (application.yml) ```yaml config: server-url: https://server.gxwebsoft.com/api ``` ## 优势 1. **可维护性**: 服务器地址集中管理,修改时只需要更新配置文件 2. **环境适配**: 不同环境可以使用不同的服务器地址 3. **部署灵活**: 部署时可以通过环境变量或外部配置文件覆盖 4. **代码清洁**: 移除了硬编码,提高了代码质量 ## 测试验证 创建了测试类 `ServerUrlConfigTest` 来验证配置是否正确读取: - 验证配置属性不为空 - 验证URL格式正确 - 验证开发环境使用本地地址 ## 注意事项 1. 确保所有环境的配置文件都正确设置了 `server-url` 2. 部署时需要根据实际环境调整配置 3. 如果有新的代码需要调用服务器API,应该使用 `ConfigProperties.getServerUrl()` 而不是硬编码 ## 后续建议 1. 可以考虑将其他硬编码的URL也进行类似的重构 2. 建立代码规范,禁止在代码中硬编码URL 3. 在CI/CD流程中添加检查,确保没有新的硬编码URL被引入