您可以使用SnakeYAML库来解析和比较这两个YAML字符串。以下是使用Java 8代码实现的示例:

import org.yaml.snakeyaml.Yaml;

import java.util.LinkedHashMap;
import java.util.Map;

public class Main {

    public static void main(String[] args) {
        String yaml1 = "deploy:\n" +
                "  url: 123456@.qq.com\n" +
                "  name: 123456\n" +
                "swagger:\n" +
                "  enabled: ${swaggerEnabled:false}";

        String yaml2 = "server:\n" +
                "  port: 50012\n" +
                "  tomcat:\n" +
                "    uri-encoding: UTF-8\n" +
                "  servlet:\n" +
                "    context-path: /api/ts-dc\n" +
                "spring:\n" +
                "  profiles:\n" +
                "    active:\n" +
                "      - ${profileName:prod}\n" +
                "  servlet:\n" +
                "    multipart:\n" +
                "      max-file-size: 100MB\n" +
                "      max-request-size: 100MB\n" +
                "  ######################################mysql基础数据库-需要修改链接 start################################################\n" +
                "  datasource:\n" +
                "    type: com.alibaba.druid.pool.DruidDataSource\n" +
                "    driver-class-name: com.mysql.jdbc.Driver\n" +
                "    url: jdbc:mysql://${mysqlIp:172.17.0.1}:${mysqlPort:3306}/ly_dc?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai\n" +
                "    username: ${mysqlUsername:root}\n" +
                "    password: ${mysqlPassword:Ly37621040}\n" +
                "    druid:\n" +
                "      initial-size: 5\n" +
                "      min-idle: 5\n" +
                "      max-active: 20\n" +
                "      max-wait: 60000\n" +
                "      pool-prepared-statements: false\n" +
                "      max-pool-prepared-statement-per-connection-size: 20\n" +
                "      max-open-prepared-statements: 20\n" +
                "      validation-query: SELECT 'x' from dual\n" +
                "      validation-query-timeout: 30000\n" +
                "      test-on-borrow: true\n" +
                "      test-on-return: false\n" +
                "      test-while-idle: true\n" +
                "      time-between-eviction-runs-millis: 60000\n" +
                "      min-evictable-idle-time-millis: 300000\n" +
                "      max-evictable-idle-time-millis: 300000\n" +
                "      filters: stat,wall,log4j\n" +
                "      filter:\n" +
                "        wall:\n" +
                "          enabled: true\n" +
                "          config:\n" +
                "            comment-allow: true\n" +
                "            multi-statement-allow: true\n" +
                "      web-stat-filter:\n" +
                "        enabled: true  #是否启用StatFilter默认值true\n" +
                "        url-pattern: /druid/*\n" +
                "        #        exclusions: *.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*\n" +
                "        session-stat-enable: true\n" +
                "        session-stat-max-count: 10\n" +
                "        principal-session-name:\n" +
                "        principal-cookie-name:\n" +
                "        profile-enable: true\n" +
                "      stat-view-servlet:\n" +
                "        enabled: true #是否启用StatViewServlet默认值true\n" +
                "        url-pattern: /druid/*\n" +
                "        reset-enable: true\n" +
                "        login-username: admin\n" +
                "        login-password: Ly37621040\n" +
                "        allow:\n" +
                "        deny:\n" +
                "  ######################################mysql基础数据库-需要修改链接 end################################################\n" +
                "  ##########################################redis-需要修改链接 start ##############################################\n" +
                "  redis:\n" +
                "    database: 1           # Redis数据库索引(默认为0)\n" +
                "    host: ${redisIp:172.17.0.1}  # Redis服务器地址\n" +
                "    port: 16377            # Redis服务器连接端口\n" +
                "    password: 37621040     #Redis服务器连接密码(默认为空)\n" +
                "    timeout: 0            # 连接超时时间(毫秒)\n" +
                "    jedis:\n" +
                "      pool:\n" +
                "        max-idle: 8         # 连接池中的最大空闲连接\n" +
                "        min-idle: 1         # 连接池中的最小空闲连接\n" +
                "        max-active: 8       # 连接池最大连接数(使用负值表示没有限制)\n" +
                "        max-wait: -1        # 连接池最大阻塞等待时间(使用负值表示没有限制)\n" +
                "  ##########################################redis-需要修改链接 end ##############################################\n" +
                "  ##########################################rabbitmq-需要修改链接 start ##############################################\n" +
                "  rabbitmq:\n" +
                "    host: ${rabbitmqIp:172.17.0.1}\n" +
                "    port: 5672\n" +
                "    username: admin\n" +
                "    password: 37621040\n" +
                "  ##########################################rabbitmq-需要修改链接 end ##############################################\n" +
                "  flyway:\n" +
                "    enabled: true\n" +
                "    baseline-on-migrate: true\n" +
                "    clean-on-validation-error: true\n" +
                "    validate-on-migrate: false\n" +
                "    #目标版本\n" +
                "    #target:\n" +
                "    encoding: UTF-8\n" +
                "    # 迁移sql脚本文件存放路径,默认db/migration\n" +
                "    locations: classpath:db/migration\n" +
                "    # 迁移sql脚本文件名称的前缀,默认V\n" +
                "    sql-migration-prefix: V\n" +
                "    # 迁移sql脚本文件名称的分隔符,默认2个下划线__\n" +
                "    sql-migration-separator: __\n" +
                "    # 迁移sql脚本文件名称的后缀\n" +
                "    sql-migration-suffixes: .sql\n" +
                "  ##########################################quartz-需要修改链接(与基础库一样) start ##############################################\n" +
                "  quartz:\n" +
                "    properties:\n" +
                "      org:\n" +
                "        quartz:\n" +
                "          #quartz数据库连接(与基础库一样)\n" +
                "          dataSource:\n" +
                "            qzDS:\n" +
                "              URL: ${spring.datasource.url}\n" +
                "              driver: ${spring.datasource.driver-class-name}\n" +
                "              maxConnections: 10\n" +
                "              password: ${spring.datasource.password}\n" +
                "              user: ${spring.datasource.username}\n" +
                "          #quartzjob存储方式\n" +
                "          jobStore:\n" +
                "            #jdbc持久化\n" +
                "            class: org.quartz.impl.jdbcjobstore.JobStoreTX\n" +
                "            #数据源连接名\n" +
                "            dataSource: qzDS\n" +
                "            #驱动代表\n" +
                "            driverDelegateClass:  org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n" +
                "            #触发器忍耐时间 超过5s则错过\n" +
                "            misfireThreshold: 5000\n" +
                "            #表前缀\n" +
                "            tablePrefix: LY_QRTZ_\n" +
                "            useProperties: false\n" +
                "          scheduler:\n" +
                "            instanceName: ly_ts_scheduler\n" +
                "          threadPool:\n" +
                "            class: org.quart
yaml格式的字符串1deploy url 123456qqcom name 123456swagger enabled $swaggerEnabledfalseyaml格式的字符串2server port 50012 tomcat uri-encoding UTF-8 servlet context-path apits-dcspring profiles act

原文地址: https://www.cveoy.top/t/topic/ixps 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录