• SpringBoot 根据不同环境切换不同文件路径


            最简单的办法就是使用多个 application.yml 配置文件 。一个叫 application-test.yml  测试用;另一个是正式使用的 application-prod.yml 。win环境下大部分是开发测试时候使用的,服务正式上线需要部署在Linux服务器上又换成了Linux。但开发初期或者项目不是很正式,也可以不这样写,就单独写一个application.yml 里面写好两个路径,再写一个文件配置类,在这里面写好方法就行。

    application.yml

    1. file:
    2. path:
    3. windows: D:\qr_code_duct\qr_code_back\ddinguia\server\files\
    4. linux: /app/files/

    文件配置类 FileProperties

    1. import org.springframework.beans.factory.annotation.Value;
    2. import org.springframework.boot.context.properties.ConfigurationProperties;
    3. import org.springframework.stereotype.Component;
    4. @Component
    5. @ConfigurationProperties(prefix = "file")
    6. public class FileProperties {
    7. private PathConfig path;
    8. public PathConfig getPath() {
    9. return path;}
    10. public void setPath(PathConfig path) {
    11. this.path = path;}
    12. public static class PathConfig {
    13. private String windows;
    14. private String linux;
    15. public String getWindows() {
    16. return windows;}
    17. public void setWindows(String windows) {
    18. this.windows = windows;}
    19. public String getLinux() {
    20. return linux;}
    21. public void setLinux(String linux) {
    22. this.linux = linux;}
    23. }
    24. public String getSavePath() {
    25. String os = System.getProperty("os.name").toLowerCase();
    26. if (os.contains("win")) {
    27. return path.getWindows();
    28. } else if (os.contains("nix") || os.contains("nux") || os.contains("aix")) {
    29. return path.getLinux();
    30. } else {
    31. throw new IllegalStateException("Unsupported operating system: " + os);
    32. }
    33. }
    34. }

    具体在代码中使用,就像正常调用参数一样就行,比如先在Service层里面引入

    1. @Resource
    2. private FileProperties fileProperties;

    然后直接使用即可:

    File directory = new File(fileProperties.getSavePath() + File.separator + fileType + "s");

    在 Win 环境下测试 :

    Linux 环境下测试:

  • 相关阅读:
    印刷企业如何利用MES管理系统改善生产计划
    Matlab:测试空字符串和缺失值
    【老板要我啥都会】前端升全栈系列 项目安全
    迅为RK3399Qt 实时时钟测试
    OceanBase v4.2 特性解析:新增三种临时表功能,更多的Oracle语句兼容
    架构设计:千万级流量下的数据强依赖降级
    gcc编译器
    万字整理 | 深入理解工作队列
    springboot整合redis redis连idea
    持安科技入选数说安全《2023中国网络安全市场年度报告》
  • 原文地址:https://blog.csdn.net/weixin_49171365/article/details/138067110