SpringBoot项目读取外置配置文件步骤:

本文介绍了SpringBoot项目如何在本地开发和生产环境中管理多个配置文件,如application.yml、application-local.yml和application-prod.yml。通过pom.xml的profiles设置,以及部署时指定spring.config.location参数,确保在不同环境下正确加载和使用配置。
摘要由CSDN通过智能技术生成

假设有三个配置文件:

application.yml、application-local.yml、application-prod.yml

      当使用本地环境配置文件时,并且在本地运行代码读取配置文件。

      当使用生产环境配置文件时,springboot项目打jar时不带上配置文件

如图是分别带上配置文件的jar和不带配置文件的jar。

 首先在pom文件中添加两个profiles:

<profiles>
    <profile>
        <id>local</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>application.yml</exclude>
                        <exclude>application-local.yml</exclude>
                        <exclude>application-prod.yml</exclude>
                        <!-- 其他需要排除的配置文件 -->
                    </excludes>
                </resource>
            </resources>
        </build>
    </profile>
</profiles>

 这个意思就是在不同的环境下选择是否要排除配置文件。

当在local环境下打jar时,Profiles选择local,这样就会带上配置文件,并且本地可以正常运行和读取配置文件。

 

 当在prod环境下打jar时,Profiles选择prod,这样不会带上配置文件,本地不能运行和且不会读取配置文件,一般选择prod时都是部署到服务器使用。

 

 注意:当选择不同环境时,application.yml里面的也要更改。

spring:
  profiles:
    active: local

最后是当部署在服务器上时,如何指定读取配置文件,下面给出具体命令示例:

sudo -u root nohup /usr/bin/java -jar -Dspring.config.location=file:/www/wwwroot/springboot/library/config/application.yml /www/wwwroot/springboot/library/library-serve-0.0.1-SNAPSHOT.jar  --server.port=18080 >> /tmp/7ZOW24MX4K.log 2>&1 &

1.  -Dspring.config.location=file:/www/wwwroot/springboot/library/config/application.yml 

指定配置文件路径,且必须放在指定jar包路径前

2.  /www/wwwroot/springboot/library/library-serve-0.0.1-SNAPSHOT.jar 

指定jar包路径

3.  --server.port=18080 

指定项目运行端口

这便是springboot项目读取外置配置文件的简易方法。

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果在 SpringBoot 项目读取配置文件时出现乱码,可能是因为编码格式不正确或者文件本身存在编码问题。你可以尝试以下几种方法来解决: 1. 在 `application.properties` 或 `application.yml` 中添加以下配置: ``` spring.http.encoding.force=true spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true ``` 这些配置将确保 Spring Boot 使用正确的编码格式来读取配置文件。 2. 确认配置文件的编码格式是否正确。可以使用 UTF-8 编码格式保存配置文件,并确保在读取文件时指定正确的编码格式。 ``` Properties properties = new Properties(); InputStream inputStream = getClass().getClassLoader().getResourceAsStream("application.properties"); try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); properties.load(inputStreamReader); } catch (IOException e) { e.printStackTrace(); } ``` 3. 如果以上方法都无法解决问题,可以尝试使用 `native2ascii` 工具将配置文件转换为 ASCII 码,并在读取文件时指定编码格式为 `ISO-8859-1`。 ``` Properties properties = new Properties(); InputStream inputStream = getClass().getClassLoader().getResourceAsStream("application.properties"); try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "ISO-8859-1"); properties.load(new StringReader(Native2AsciiUtils.ascii2Native(IOUtils.toString(inputStreamReader)))); } catch (IOException e) { e.printStackTrace(); } ``` 希望这些方法可以帮助你解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值