>Java >java지도 시간 >SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?

SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?

PHPz
PHPz앞으로
2023-05-30 23:36:491590검색

수요 시나리오

인프라 모듈에는 몇 가지 공통적으로 고정된 기본 구성이 있습니다. 예를 들어 로그 구성, Spring 코어 구성 및 MyBatis Plus 관련 공통 구성을 포함하되 이에 국한되지 않습니다. 이러한 구성은 환경과 독립적인 경우가 많습니다. 어떻게 재사용할 수 있습니까?

# 日志配置
logging:
  level:
    # 记得配置到包名
    com.agileboot: debug
    org.springframework: info
  pattern:
    console: "%date %thread %green(%level) [%cyan(%logger{10}):%magenta(%line)] %red(%method) | %msg%n"
# Spring配置
spring:
  # 文件上传
  servlet:
     multipart:
       # 单个文件大小
       max-file-size:  10MB
       # 设置总上传的文件大小
       max-request-size:  20MB
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  jackson:
    deserialization:
      fail-on-unknown-properties: false
    serialization:
      write-dates-as-timestamps: false
    date-format: yyyy-MM-dd HH:mm:ss

인프라 모듈에는 환경에 독립적인 구성도 있습니다. 예를 들어 MySQL, Redis 또는 MQ가 있습니다. 환경을 구별하는 방법은 무엇입니까?

# 数据源配置
spring:
    # redis 配置
    redis:
        # 地址
        host: localhost
        # 端口,默认为6379
        port: 36379
        # 数据库索引
        database: 0
        # 密码
        password: 12345
        # 连接超时时间
        timeout: 10s
        lettuce:
            pool:
                # 连接池中的最小空闲连接
                min-idle: 0
                # 连接池中的最大空闲连接
                max-idle: 8
                # 连接池的最大数据库连接数
                max-active: 8
                # #连接池最大阻塞等待时间(使用负值表示没有限制)
                max-wait: -1ms

일반적으로 logback.xml 파일에서 로그 관련 구성을 구성합니다. 다양한 환경에서 다양한 로그 경로를 구현하는 방법은 무엇입니까?

원하는 효과

  • 인프라 모듈에서 고정된 구성을 재사용합니다.

  • 여러 환경의 구성을 구별합니다.

  • 로그백 로그에는 다중 환경 구성이 도입되었습니다.

Implementation

관리 모듈에 대한 application.yml 파일을 정의할 수 있습니다. 모듈별 구성은 파일에 설명되어 있습니다. 예를 들어 포트, 액세스 경로 등이 있습니다.

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 8080
  servlet:
    # 应用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # 连接数满后的排队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100
# Spring配置 如果需要无Mysql  无Redis直接启动的话  dev改为test
# 生产环境把dev改为prod
spring:
  profiles:
    active: basic,dev

인프라 모듈에서 새로운

applicaiton-basic.yml을 생성하고 환경과 독립적인 일부 기본 고정 재사용 구성을 구성합니다.

application-dev.yml, 데이터베이스 구성과 같은 일부 환경 관련 구성을 구성합니다.

그런 다음 spring.profiles.active 구성에서 기본 및 개발 파일을 지정하세요.

SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?

이때 springboot는 applicaiton-basic.ymlapplication-dev.yml 파일을 자동으로 찾습니다.
따라서 최종 구성 파일은 applicaiton.yml+applicaiton-basic.yml+applicaiton-dev.yml이 겹쳐진 구성입니다.

다중 환경 로깅을 구성하기 위해 새로운 logback-spring.xml 파일을 생성할 수 있습니다. 환경에 따라 서로 다른 로그 경로를 구성하고 싶다고 가정해 보겠습니다. application-dev.yml과 같은 파일에서 login.file.path를 구성할 수 있습니다.

SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?

그런 다음 logback-spring.xml 파일의 springProperty 태그를 사용하여 다중 환경 yml에 구성된 경로를 읽습니다.

SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?

이때 로그의 경로는 각각 다른 환경에서 구성된 경로를 읽게 됩니다.

위 내용은 SpringBoot 프로젝트에서 다중 레벨 및 다중 환경 YML 설계 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제