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

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

application.yml

file:path:windows: D:\qr_code_duct\qr_code_back\ddinguia\server\files\linux: /app/files/

文件配置类 FileProperties

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Component
@ConfigurationProperties(prefix = "file")
public class FileProperties {private PathConfig path;public PathConfig getPath() {return path;}public void setPath(PathConfig path) {this.path = path;}public static class PathConfig {private String windows;private String linux;public String getWindows() {return windows;}public void setWindows(String windows) {this.windows = windows;}public String getLinux() {return linux;}public void setLinux(String linux) {this.linux = linux;}}public String getSavePath() {String os = System.getProperty("os.name").toLowerCase();if (os.contains("win")) {return path.getWindows();} else if (os.contains("nix") || os.contains("nux") || os.contains("aix")) {return path.getLinux();} else {throw new IllegalStateException("Unsupported operating system: " + os);}}
}

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

    @Resourceprivate FileProperties fileProperties;

然后直接使用即可:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2979043.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

CANN 开发工具介绍

1、ATC工具 ATC(Ascend Tensor Compiler)是异构计 算架构CANN体系下的模型转换工具, 它可 以将开源框架的网络模型以及Ascend IR定义 的单算子描述文件(json格式)转换为昇腾 AI处理器支持的.om格式离线模型。 2、精度…

jdbc操作数据库 and 一个商品管理页面

文章目录 1. 介绍1.1 应用知识介绍1.2 项目介绍 2. 文件目录2.1 目录2.2 介绍以下(从上到下) 3. 相关代码3.1 DBConnection.java3.2 MysqlUtil.java3.3 AddServlet.java3.4 CommodityServlet.java3.5 DelectServlet.java3.6 SelectByIdServlet.java3.7 S…

解线性方程组——(Jacobi)雅克比迭代法 | 北太天元

一、Jacobi迭代法 n 3 n3 n3 , 阶数为 3 时 A ( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) , b ( b 1 b 2 b 3 ) , A\begin{pmatrix} a_{11} & a_{12} &a_{13}\\ a_{21} & a_{22} &a_{23}\\ a_{31} & a_{32} &a_{33}\\ \end{pmatrix} ,\qua…

广东海洋大学成功部署(泰迪智能科技)大数据人工智能实验室建设

广东海洋大学简称广东海大,坐落于广东省湛江市,是国家海洋局与广东省人民政府共建的省属重点建设大学、广东省高水平大学重点学科建设高校、粤港澳高校联盟成员 ,入选卓越农林人才教育培养计划,是教育部本科教学水平评估优秀院校。…

vuex中mutations和actions 异步同步实现方法

一 mutations 和 actions 优缺点及使用场景 同步性: Mutations是同步的,这意味着它们会在提交后立即执行。而Actions是异步的,提交后会被排队,在稍后执行。 用途: Mutations适用于简单的状态修改,如递增/…

【Java基础】压测工具JMeter使用简介

1. JMeter介绍 Apache JMeter是一个基于Java开发的开源性能测试工具,由Apache软件基金会维护 JMeter最初设计用于Web应用测试,但它的功能已经扩展到其他测试领域。JMeter可以用于测试静态和动态资源,如静态文件、Java小服务程序、CGI脚本、J…

力扣HOT100 - 543. 二叉树的直径

解题思路: class Solution {int ans;//记录节点数public int diameterOfBinaryTree(TreeNode root) {ans 1;depth(root);return ans - 1;//节点数减 1 就是路径长度}public int depth(TreeNode root) {if (root null) return 0;int l depth(root.left);int r de…

中红医疗:纷享销客CRM系统如何助力​数字化“狂飙”

纷享销客深耕 CRM 多年,可以顺畅打通 CRM 和 ERP 系统客户资源池,将金蝶苍穹平台的物料、产品基础主数据作为档案同步到纷享销客,以便商务维护好产品及库存。 纷享销客通过成熟的集成方案提高系统耦合性,让销售实时获得新产品及营…

123.Mit6.S081-实验1-Xv6 and Unix utilities

今天我们来进行Mit6.S081实验一的内容。 实验任务 一、启动xv6(难度:Easy) 获取实验室的xv6源代码并切换到util分支。 $ git clone git://g.csail.mit.edu/xv6-labs-2020 Cloning into xv6-labs-2020... ... $ cd xv6-labs-2020 $ git checkout util Branch util …

uniapp微信小程序(商城项目)

最近,闲来无事,打算学一下uniapp小程序 于是在跟着某站上学着做了一个小程序,主要是为了学uniapp和vue。某站黑马优购 完成的功能主要有:首页、搜索、分类和购物车。 有人问了为什么没有登录、和添加订单呢?问的很好…

linux负载均衡 和 系统负载分析笔记

1 负载均衡 1.1 计算负载 1.1.1 PELT算法简介 从Linux3.8内核以后进程的负载计算不仅考虑权重,⽽且跟踪每个调度实体的历史负载情况,该算法称为PELT(Per-entity Load Tracking) 《奔跑吧Linux内核》卷1:基础架构;P505 相关资料…

kubectl常用命令行介绍

1、kubectl用法概述 kubectl命令⾏的语法如下: $ kubectl [command] [type] [name] [flags] command:命令,用于操作Kubernetes集群资源对象的命令,例如create、delete、describe、get、apply等TYPE:资源对象的类型&am…

婴儿洗衣机全自动哪个好?推荐四款实惠耐用的婴儿洗衣机

婴儿的衣物对于卫生要求需要高一些,其抵抗力是比较弱的,再加上普通洗衣机无法对婴儿的衣物进行有效的消毒处理,轻则会对婴儿的健康造成威胁,重则会导致皮肤病的发生。因此,一台可以对衣物进行高温除菌的婴儿洗衣机非常…

运营高手都在用的9款办公软件!一定要收藏

最近,运营群里的00后天天都在搞新花样,每天都有新的idea,各种跟热点、做品牌联名、拍好玩的视频、做创意海报……。但奇怪的是,工作量增加了、业绩增长了,却不见有人加班。一问,原来因为用上了办公神器啊&a…

数据结构(C):时间复杂度和空间复杂度

目录 🚀 0.前言 🚀 1.为何会有时间复杂度和空间复杂度的概念 🚀 2.时间复杂度 2.1初步时间复杂度 2.2大O表示法 2.2.1.O(N*N) 2.2.2.O(N) 2.2.3.O(1) 2.3最坏情况…

揭秘分销系统:商业模式的新风向

大家好,我是微三云周丽,今天给大家分析当下市场比较火爆的商业模式! 小编今天跟大伙们分享什么是分销系统? 在数字化浪潮席卷全球的今天,电子商务以其独特的优势,正在重塑商业世界的格局。其中&#xff0…

大模型产业盛典上石景山智能算力中心绽放新光芒

2024年4月16日,由中关村数智人工智能产业联盟主办的“2024人工智能大模型产业发展大会”圆满闭幕。在这场盛会中,企商在线石景山智能算力中心以其作为北京最大规模的公共智能算力中心的身份亮相,为首都建设全球数字标杆城市注入了新的活力。 …

KingbaseES数据库bulkload快速导入导出数据

数据库版本:KingbaseES V008R006C008B0014 简介 sys_bulkload 是 kingbase 快速将 CSV 文件导入数据库的命令行工具,它支持串行和并行的方式,是目前导入数据最快的工具。 文章目录如下 1. 基础语法 1.1. 语法说明 1.2. 参数选项 1.3. 配置…

C语言进阶课程学习记录- 函数与宏分析

C语言进阶课程学习记录- 函数与宏分析 实验-宏和函数实验-宏的副作用实验-宏的妙用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验-宏和函数 #include <stdio.h>#define RESET(p, len) …

贪心算法练习day.1

理论基础 贪心算法是一种常见的解决优化问题的方法&#xff0c;其基本思想就是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部的最优决策&#xff0c;以此得到全局的最优解&#xff0c;例如在十张面额不同的钞票&#xff0c;让我们…