SpringBoot 项目打成 jar后加载外部配置文件的操作方法

为了让解释更加清晰,我将分为以下几个步骤来讲解Spring Boot项目打成jar包后加载外部配置文件的操作方法。

1. 添加外部配置文件

在项目的根目录下,添加配置文件,如application.properties或application.yml等。需要注意的是,如果是yml文件,必须注意yml的缩进格式,否则会导致读取错误。

例如,我们添加一个名为config.properties的配置文件,包含如下配置项:

database.url=jdbc:mysql://localhost:3306/test
database.username=root
database.password=123456

2. 修改pom.xml文件

修改pom.xml文件,增加外部配置文件的依赖。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <!-- 外部配置文件依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

3. 创建 Config

创建一个@Configuration的类,用于读取并注入外部配置文件,如下所示:

@Configuration
@PropertySource("classpath:config.properties") //标注读取配置文件
public class Config {

    @Value("${database.url}")
    private String url;

    @Value("${database.username}")
    private String username;

    @Value("${database.password}")
    private String password;

    //getter and setter省略...
}

4. 打包项目

点击IDEA的maven选项卡中的Package即可进行项目打包。在路径 /target/ 中找到项目打包后的 .jar文件。

5. 在命令行中运行jar文件

在控制台中输入以下命令来启动项目,填写项目名称和jar包名称。

java -jar 项目名称.jar

运行成功后,可以看到在控制台中输出了加载配置文件的相关日志信息。

示例说明

示例1:Spring Boot项目加入Redis的配置

在resources目录下创建application.yml或者application.properties,例如添加以下Redis的配置:

spring.redis.host=localhost
spring.redis.port=6379

然后再创建一个Redis配置类,代码如下:

@Configuration
@ConfigurationProperties(prefix = "spring.redis")
public class RedisConfig {
    private String host;
    private int port;

    //getter and setter省略...
}

通过@ConfigurationProperties注解,可以使用前缀名来不必一个个去写变量。比如这里设置了spring.redis,那么在属性上面直接写port即可。

示例2:Spring Boot项目加入Mysql数据库的配置

在resources目录下同样也是创建application.yml或者application.properties文件,但是这里以yml格式为例。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456

然后在创建一个Mysql配置类,同样是通过@ConfigurationProperties注解,代码如下:

@Configuration
@ConfigurationProperties(prefix = "spring.datasource")
public class MysqlConfig {
    private String url;
    private String username;
    private String password;

    //getter and setter省略...
}

注入之后,在代码中就可以直接使用这些配置的变量了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 项目打成 jar后加载外部配置文件的操作方法 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • 破解zip加密文件常用的几种方法

    破解zip加密文件常用的几种方法 Zip加密是一种常见的文件压缩方式,其加密方式为ZIP 2.0标准加密,使用基于密码的加密算法进行压缩和解压缩操作。但是,如果忘记了密码,或者需要破解别人的Zip加密文件,下面列举了几种常用的破解方法,供参考。 方法一:暴力破解 暴力破解是一种基于穷举法的破解方式,它通过逐个猜测密码,不断尝试直到找到正确的密码。但是,如果密…

    其他 2023年4月16日
    00
  • 帝国cms所有的数据库表结构和字段说明

    下面是帝国 CMS 所有的数据库表结构和字段说明。 1. 表结构 1.1. 表 igg_attachment 该表存储所有的附件信息,包括附件的名称、大小、上传时间、存放路径等。 CREATE TABLE `igg_attachment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) …

    other 2023年6月25日
    00
  • python 接口测试response返回数据对比的方法

    以下是关于Python接口测试中对比response返回数据的方法的完整攻略: Python接口测试response返回数据对比方法 在进行接口测试时,我们经常需要对接口返回的数据进行验证和对比。下面是一些常用的方法来实现response返回数据的对比: 使用断言库进行数据对比 可以使用Python中的断言库,如assert语句或unittest框架中的断言…

    other 2023年10月16日
    00
  • python如何派生内置不可变类型并修改实例化行为

    要派生内置不可变类型并修改实例化行为,我们需要使用Python中的元类(metaclass)。首先,让我们来了解一下Python中元类的概念。 Python中的元类 元类可以作为类的模板,控制类的创建过程。我们可以通过定义元类来修改类的定义方式、类的属性和方法等。 在Python中,每个类实际上都是通过元类来创建的。Python中默认的元类是type类,它掌…

    other 2023年6月27日
    00
  • C语言文件操作函数大全(超详细)

    下面我来为你详细讲解一下“C语言文件操作函数大全(超详细)”的完整攻略。 1. 文件操作函数概述 在C语言中,文件操作函数是非常重要的一部分内容。文件操作函数的基本作用是对文件进行读、写、定位、创建、删除等相关操作,包括以下几类函数: 文件打开和关闭函数:fopen() 和 fclose() 文件读写函数:fscanf()、fprintf()、fgetc()…

    other 2023年6月26日
    00
  • mysql如何判断是不是空字符串

    MySQL如何判断是不是空字符串 在MySQL中,判断一个字段是否为空字符串在实际应用中非常常见。下面介绍几种方法。 1. 使用 = 来判断 最简单的方法是使用等号来判断一个字段是否为空字符串。例如: SELECT * FROM my_table WHERE my_column = ”; 上面这条 SQL 语句会查询 my_table 表中 my_colu…

    其他 2023年3月28日
    00
  • vuecli3打包后出现跨域问题,前端配置拦截器无效的解决

    如果在使用VueCLI3打包项目之后出现跨域问题,可以采用以下方法: 修改vue.config.js文件 在VueCLI3项目根目录下新建/vue.config.js文件,并加入如下代码: module.exports = { devServer: { proxy: { ‘/api’: { target: ‘http://localhost:3000’, c…

    other 2023年6月27日
    00
  • PHP学习 运算符与运算符优先级

    PHP学习:运算符与运算符优先级攻略 1. 运算符优先级概述 在PHP中,运算符优先级决定了表达式中运算符执行的顺序。当一个表达式中存在多个运算符时,按照优先级规则逐个执行运算符,以确定表达式的最终结果。以下是PHP中常见的运算符优先级(从高到低): 递增/递减运算符 (++,–) 一元运算符 (+,-,!) 乘法运算符 (*,/,%) 加法运算符 (+,…

    other 2023年6月28日
    00
合作推广
合作推广
分享本页
返回顶部