炫“库”行动-人大金仓有奖征文-服务器配置技巧之参数讲解 <一>

本文详细介绍了Kingbase数据库的参数配置,包括参数名称和值的类型、配置参数的不同方法如配置文件、SQL命令和Shell工具,以及参数的生效范围。重点讨论了配置文件的管理和参数类型,如布尔、字符串、数字和枚举。同时,解释了如何通过SIGHUP信号更新配置以及如何在SQL中使用ALTER命令动态调整参数。

[本文正在参与炫“库”行动-人大金仓有奖征文]

活动地址:https://marketing.youkuaiyun.com/p/98bd30353e7cb998b6070a89e8b91edb



一、参数的名称和值

  Kingbase所有参数名都是大小写不敏感的,每个参数都可以接受五种类型之一的值:布尔、字符串、整数、浮点数或枚举。该类型决定了设置该参数的语法:

  • 布尔值:值可以被写成on,off,true,false,yes,no,1,0(都是大小写不敏感的)。
  • 字符串:通常值被包括在单引号内,值内部的任何单引号都需要被双引号引起来,或者在单引号前面加一个反斜杠(\)。不过,如果值是一个简单数字或者标识符,引号通常可以被省略。
  • 数字(整数和浮点):只对浮点参数允许一个小数点。不要使用千位分隔符。不要求引号。
  • 带单位的数字:一些数字参数具有隐含单位,因为它们描述的是内存或时间量。如果用户在设置参数的值时没有指定单位,则以参数默认的单位为准。例如,参数shared_buffers表示数据缓冲区的大小,它的默认单位是数据块的个数,如果把它的值设成8,因为每个数据块的大小是8KB,则数据缓冲区的大小是8*8=64KB。如果将它的值设成128MB,则数据缓冲区的大小是128MB。参数vacuum_cost_delay的默认单位是毫秒,如果把它的值设成10,则它的值是10毫秒,如果把它的值设成100s,则它的值是100秒。要使用这个特性,注意值必须被写成一个字符串(带有引号)。单位名称是大小写敏感的,在数字值和单位之间可以有空格。带数字的参数有如下两种:
    • 可用的内存单位:kB(千字节)、MB(兆字节)和GB(吉字节)。内存单位的乘数是1024而不是1000。
    • 可用的时间单位:ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。
  • 枚举:枚举类型的参数与字符串参数相同的方式指定,但被限制到一组有限的值。枚举参数值是与大小写无关的。

二、配置参数的方法

1. 通过配置文件形式配置参数

  通常在数据目录下有一个名为kingbase.conf的配置文件(当数据目录被初始化时,会自动生成的默认配置文件),这个文件看起来是这个样子的:
    #This is a comment
    log_connections = off
    log_destination = ‘stderr’
    search_path = ‘"$user", public’
    shared_buffers = 128MB
  每一行指定一个参数。名称和值之间的等号是可选的。空白是无意义的(除了在一个引号引用的参数值内)并且空行被忽略。井号(#)指示该行的剩余部分是一个注释。非简单标识符或者数字的参数值必须用单引号包围。要在参数值里嵌入单引号,要么写两个单引号(首选)或者在引号前放反斜线。
  主服务器进程每次收到SIGHUP信号(最简单的方法是从命令行运行sys_ctl reload或调用SQL函数sys_reload_conf()来发送这个信号)后都会重新读取这个配置文件。主服务器进程还会把这个信号传播给所有正在运行的服务器进程,这样现有的会话也能采用新值(但是注意要等待它们完成当前正在执行的客户端命令之后才会发生)。另外,你可以直接向一个单一服务器进程发送该信号。

  注意:有些参数只能在服务器启动时设置,在配置文件中对这些条目的修改将被忽略,直到下次服务器重启才能生效。配置文件中的非法参数设置也会在SIGHUP处理过程中被忽略(但是会记录日志)。另外如果SIGHUP信号没有产生预期效果,那么系统表sys_file_settings有助于对配置文件的预测试更改,或者诊断问题。

1.2. 管理配置文件内容

  Kingbase提供了一些特性用于把复杂的kingbase.conf文件分解成子文件。换句话说一个配置文件可以包含其他配置文件。好像该文件被插入到配置文件的这个点。这个特性允许一个配置文件被划分成物理上独立的部分。

  • include指令
      使用方法:include ‘文件名’
      如果文件名不是一个绝对路径,数据库会在kingbase.conf文件所在的目录下查找这个文件。
  • include_if_exists指令
      使用方法:include_if_exists ‘文件名’
      作用和include一样,不过当被引用的文件不存在或者无法被读取时,其行为不同。通常include将认为这是一个错误,然后终止初始化。而include_if_exists仅仅记录一个消息然后继续处理其他引用或者其他配置参数。
  • include_dir
      使用方法:include_dir ‘目录名’
      作用和include一样,但是只会将该目录下所有以后缀名.conf结尾的非目录文件均作为配置文件引用(但如果以.字符开头的文件名会被忽略,因为在某些平台认为它是个隐藏文件)。
      注意:如果该目录下包括多个配置文件被引用,则会按照排序规则进行引用。因此如果多个配置文件同时对一个参数进行配置,那么生效的只有最后被引用的配置文件中的配置参数才生效,前面的都会被覆盖。

2. 通过SQL命令形式配置参数

  Kingbase提供了几个SQL命令来配置参数值:

  • ALTER SYSTEM命令,是一种改变全局参数值的方法,它在功效上等效于编辑kingbase.conf;
  • ALTER DATABASE命令,允许针对一个数据库覆盖其全局设置;
  • ALTER ROLE命令,允许用户指定的值来覆盖全局设置和数据库设置。
      注:只有当重新启动一个新的数据库会时,用ALTER DATABASE和ALTER ROLE设置的值才会被应用,它会覆盖从配置文件或服务器命令行获得的值,并且作为该会话后续的默认值。但是需要特别注意的是,某些参数值在服务器启动后不能被修改。
  • RESET命令,把一个运行时参数的值恢复到默认值。
    当一个客户端连接到数据后,kingbase会提供两个额外的SQL命令(以及等效的函数)用以影响会话本地的配置设置。
  • SHOW命令,允许查看所有参数的当前值,与之对应的函数是current_setting(setting_name text)。
  • SET命令,允许修改对于一个本地会话的参数的当前值,它对其他会话没有影响。对应的函数是set_config(setting_name, new_value, is_local)。

此外,系统视图sys_settings可以被用来查看和改变本地会话的参数的当前值:

  • 查询这个视图与使用SHOW ALL相似,但是可以提供更多的细节,并且还可以指定过滤条件或者把它与其他关系进行连接。
  • 对这个视图使用UPDATE命令并指定更新setting列(setting列表式参数的当前值)和name列(name列表式运行时配置参数名),其效果等效于发出SET命令。

3. 通过Shell工具形式配置参数

  除了在数据库或者角色层面上设置全局默认值或者进行覆盖,你还可以通过shell工具把设置传递给kingbase。服务器和libkci客户端库都能通过shell接受参数值。

  • 在服务器启动期间,可以通过-c命令行参数把参数设置传递给 kingbase命令。例如:kingbase -c log_connections=yes -c log_destination=‘syslog’
    这种方式提供的设置会覆盖通过kingbase.conf或者 ALTER SYSTEM提供的设置,因此除了重启服务器之外无法从全局上改变它们。
  • 当启动一个客户端会话时,可以使用PGOPTIONS 环境变量指定参数设置。这种方式建立的设置构成了会话生存期间的默认值,但是不会影响 其他的会话。例如:env PGOPTIONS="-c geqo=off -c statement_timeout=5min" psql

三、配置参数类型说明

  对于Kingbase中的所有参数,都可在视图sys_settings中查看到详细说明,其中context列根据参数的生效范围和生效方式不同,可以将参数分为如下几类:

  • internal
      这些设置不能被直接修改,它们反映了内部决定的值。某些可能在使用不同配置选项重建系统时或者改变initdb的选项时可以调整。
      这类值大概有:block_size、data_checksums、wal_block_size等
  • kingbase
      这些设置只能在服务器启动时应用,因此任何修改都需要重启服务器。这些设置的值通常都存储在kingbase.conf文件中,或者在启动服务器时通过命令行传递。当然,具有更低context类型的设置也可以在服务器启动时间被设置。
      这类值大概有:port、config_file、data_directory、max_connections等
  • sighup
      对于这些设置的修改可以在kingbase.conf中完成并且不需要重启服务器。发送一个SIGHUP信号给kingbase会导致它重新读取kingbase.conf并应用修改。kingbase将会把SIGHUP信号传递给它的孩子进程,这样它们也会获得新的值。
      这类值大概有:log_directory、log_filename等
  • superuser-backend
      对于这些设置的更改可以在kingbase.conf中进行而无需重启服务器。也可以在连接请求包中为一个特定的会话设定它们,但是只有在连接用户是超级用户时才能这样做。如果,在会话启动后这些设置就不会改变。如果你在kingbase.conf改变了它们,向kingbase发送一个SIGHUP信号让kingbase重新读取kingbase.conf。新的值将只会影响后续启动的会话。
      这类值大概有:log_connections、log_disconnections等
  • backend
      对于这些设置的修改可以在kingbase.conf中完成并且不需要重启服务器。它们也可以在一个连接请求包中为一个特定会话设置 ,任何用户都可以为这个会话做这种修改。然而,这些设置在会话启动后永不变化。如果你在kingbase.conf中修改它们,可以向kingbase发送一个SIGHUP信号让它重读kingbase.conf。新值只会影响后续启动的会话。
      这类值大概有:ignore_system_indexes、post_auth_delay等
  • superuser
      这些设置可以从kingbase.conf设置,或者在会话中用SET命令设置。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。
      这类值大概有:max_stack_depth、wal_compression等
  • user
      这些设置可以从kingbase.conf设置,或者在会话中用SET命令设置。任何用户都被允许修改它们的会话本地值。仅当没有通过SET设置会话本地值时,kingbase.conf中的改变才会影响现有的会话。
      这类值大概有:client_encoding、debug_print_parse、debug_print_plan、search_path、temp_buffers等




    [本文正在参与炫“库”行动-人大金仓有奖征文]
    活动地址:https://marketing.youkuaiyun.com/p/98bd30353e7cb998b6070a89e8b91edb

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.crmp.ecc</groupId> <artifactId>crmp-data-syncjob</artifactId> <packaging>pom</packaging> <version>1.0.0-SNAPSHOT</version> <modules> <module>crmp-data-syncjob-common</module> <module>crmp-data-syncjob-dao</module> <module>crmp-data-syncjob-domain</module> <module>crmp-data-syncjob-service</module> <module>crmp-data-syncjob-web</module> </modules> <name>多数据源同步服务</name> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.18</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>11</java.version> <!-- 框架版本 --> <flink.version>1.19.3</flink.version> <flink-cdc.version>3.2.0</flink-cdc.version> <debezium.version>1.9.8.Final</debezium.version> <scala.binary.version>2.12</scala.binary.version> <!-- 数据库与中间件依赖 --> <mysql.version>8.0.21</mysql.version> <druid.version>1.2.18</druid.version> <mybatis.version>2.3.1</mybatis.version> <kafka-clients.version>3.6.1</kafka-clients.version> <!-- 工具类与文档 --> <lombok.version>1.18.30</lombok.version> <hutool.version>5.8.6</hutool.version> <commons-lang3.version>3.14.0</commons-lang3.version> <!--<swagger.version>3.0.0</swagger.version>--> <!-- 新增:统SLF4J版本(与Flink 1.19.3兼容,Flink默认用1.7.36) --> <slf4j.version>1.7.36</slf4j.version> </properties> <!-- 依赖管理:统锁定版本 --> <dependencyManagement> <dependencies> <!-- 保持与Spring Boot 2.7.18兼容 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2021.0.8</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- Debezium组件 --> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-core</artifactId> <version>${debezium.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-connector-mysql</artifactId> <version>${debezium.version}</version> </dependency> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-api</artifactId> <version>${debezium.version}</version> </dependency> <dependency> <groupId>io.debezium</groupId> <artifactId>debezium-connector-oracle</artifactId> <version>${debezium.version}</version> </dependency> <!-- Flink CDC 3.2.0 --> <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>${flink-cdc.version}</version> <exclusions> <exclusion> <groupId>io.debezium</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-oracle-cdc</artifactId> <version>${flink-cdc.version}</version> </dependency> <!-- 子模块版本管理 --> <dependency> <groupId>com.crmp.ecc</groupId> <artifactId>crmp-data-syncjob-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.crmp.ecc</groupId> <artifactId>crmp-data-syncjob-dao</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.crmp.ecc</groupId> <artifactId>crmp-data-syncjob-domain</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>com.crmp.ecc</groupId> <artifactId>crmp-data-syncjob-service</artifactId> <version>${project.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <!-- ========== Spring Boot核心:排除日志冲突 ========== --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-reload4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <!-- ========== 测试依赖 ========== --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <!-- ========== 工具类 ========== --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>${hutool.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.16.0</version> </dependency> <!-- ========== API文档 ========== --> <!-- <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>${swagger.version}</version> <exclusions> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency>--> <!-- ========== 数据库依赖 ========== --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid.version}</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.version}</version> </dependency> <!-- Oracle驱动 --> <dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc10</artifactId> <version>19.10.0.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>com.oracle.database.nls</groupId> <artifactId>orai18n</artifactId> <version>19.10.0.0</version> </dependency> <!-- 人大金仓 --> <dependency> <groupId>com.kingbase8.jdbc</groupId> <artifactId>kingbase8</artifactId> <version>8.6.0</version> <scope>runtime</scope> </dependency> <!-- ========== Flink核心依赖 ========== --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_${scala.binary.version}</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-statebackend-rocksdb</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-json</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> <scope>provided</scope> </dependency> <!-- ========== Flink CDC + Debezium ========== --> <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>${flink-cdc.version}</version> <exclusions> <exclusion> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> </exclusion> <exclusion> <groupId>io.debezium</groupId> <artifactId>debezium-core</artifactId> </exclusion> <exclusion> <groupId>io.debezium</groupId> <artifactId>debezium-connector-mysql</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <!-- Oracle CDC 同MySQL CDC排除逻辑 --> <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-oracle-cdc</artifactId> <version>${flink-cdc.version}</version> <exclusions> <exclusion> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> </exclusion> <exclusion> <groupId>io.debezium</groupId> <artifactId>debezium-connector-oracle</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> <!-- Flink 核心依赖 --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> <version>${flink.version}</version> <scope>provided</scope> </dependency> <!-- Flink 流处理核心 --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>${flink.version}</version> <exclusions> <exclusion> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> </exclusion> </exclusions> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>3.6.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-base</artifactId> <version>${flink.version}</version> </dependency> <!-- Kafka 连接器 --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka</artifactId> <version>3.2.0-1.19</version> <exclusions> <exclusion> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> </exclusion> </exclusions> </dependency> <!-- Kafka Clients --> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>${kafka-clients.version}</version> </dependency> <dependency> <groupId>com.kingbase</groupId> <artifactId>flink-sql-cdc-connector-kes-v2</artifactId> <version>3.2-SNAPSHOT</version> <!--<exclusions> <exclusion> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> </exclusion> <exclusion> <groupId>com.kingbase8.jdbc</groupId> <artifactId>kingbase8</artifactId> </exclusion> </exclusions>--> </dependency> <!-- ========== Doris连接器 ========== --> <dependency> <groupId>org.apache.doris</groupId> <artifactId>flink-doris-connector-1.19</artifactId> <version>25.1.0</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.7</version> </dependency> <!-- Hadoop 支持 --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-hadoop-compatibility_2.12</artifactId> <version>1.19.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>3.3.6</version> <scope>provided</scope> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.apache.yetus</groupId> <artifactId>audience-annotations</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>3.3.6</version> <scope>provided</scope> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.apache.yetus</groupId> <artifactId>audience-annotations</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.39</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.3.2</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20231013</version> </dependency> </dependencies> <!-- 环境配置 --> <profiles> <profile> <id>dev</id> <activation> <activeByDefault>false</activeByDefault> </activation> <properties> <profileActive>dev</profileActive> </properties> </profile> <profile> <id>prod</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <profileActive>prod</profileActive> </properties> </profile> </profiles> </project>请仔细检查,是否还需要更改或者优化!!!
最新发布
11-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值