缘由
将过去常用的一些springBoot配置项整理下,其中如果缺少配置项恳请大佬们指出
Spring 通用
spring:
  mvc:
    throw-exception-if-no-handler-found: true
    static-path-pattern: /**
  web:
    resources:
      add-mappings: false
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
Mysql & Druid & mybatisPlus
spring:
    datasource:
    url: jdbc:mysql://{ip}:{port}/{database}?userUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: {usernname}
    password: {password}
    tomcat:
      test-while-idle: false
    druid:
      # 初始化连接池的连接数量 大小,最小,最大
      initial-size: 10
      min-idle: 3
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 60000
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 30000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: true
      test-on-return: false
      # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
      # 监控页面
      stat-view-servlet:
        enabled: true
        reset-enable: true
        url-pattern: /druid/*
        login-username: {username}
        login-password: {password}
      # 基础监控配置
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
        session-stat-max-count: 100
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filter:
        stat:
          merge-sql: true
          log-slow-sql: true
          slow-sql-millis: 500
          
mybatis-plus:
  type-aliases-package: {实体类包地址}
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true
  global-config:
    db-config:
      logic-not-delete-value: 0 # 逻辑删除 未删除时默认值
      logic-delete-field: delFlag # 逻辑删除属性名
RabbitMQ
spring:
  rabbitmq:
    virtual-host: /
    host: {ip}
    port: {port}
    username: {username}
    password: {password}
    publisher-confirm-type: correlated
    publisher-returns: true
    listener:
      simple:
        acknowledge-mode: manual
        concurrency: 5
        max-concurrency: 10
        prefetch: 1
        retry:
          initial-interval: 5000ms
          enabled: true
          max-attempts: 5
        default-requeue-rejected: true
Cloud&Nacos
spring:
  application:
    name: {服务名}
  profiles:
    active: dev
  cloud:
    sentinel:
      transport:
        port: {port}
        dashboard: #**********************
        heartbeat-interval-ms: 500
      eager: true
    # 负载均衡缓存
    loadbalancer:
      cache:
        enabled: true
        caffeine:
          spec: initialCapacity=500,expireAfterWrite=5s
    nacos:
      server-addr: {nacos地址}
      discovery:
        group: {nacos 分组}
        namespace: {nacos 命名空间}
      config:
        group: {nacos 分组}
        namespace:{nacos 命名空间}
        name: ${spring.application.name}
        username: {username}
        password: {password}
        file-extension: yaml
        # 以下可在nacos中手动设置
        extension-configs:
          - data-id: spring-dev.yaml # 配置文件名
            group: MATERIAL # 分组
            refresh: true # 是否同步
redis
spring:
  redis:
    host: {redis 地址}
    database: 0
    username: {username}
    password: {password}
    port: {port}
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 500
        min-idle: 0
    lettuce:
      shutdown-timeout: 180
MongoDB
spring:
  data:
    mongodb:
      uri: mongodb://{ip}:{port}/{集合名}
      username: {username}
      password: {password}
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--服务名-->
    <property name="server.name" value="{设置服务名}" />
    <!-- 日志存放路径 -->
	<property name="log.path" value="{日志存放路径}" />
   <!-- 日志输出格式 -->
	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
    <!-- 控制台输出 -->
	<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
	</appender>
    <!-- 系统日志输出 -->
	<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/info.${server.name}.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
			<fileNamePattern>${log.path}/info.${server.name}.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>
    <appender name="file_warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}/warn.${server.name}.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/warn.${server.name}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>WARN</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/error.${server.name}.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
            <fileNamePattern>${log.path}/error.${server.name}.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>ERROR</level>
			<!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
			<!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <!-- 系统模块日志级别控制  -->
	<logger name="com.lyne" level="info" />
	<!-- Spring日志级别控制  -->
	<logger name="org.springframework" level="warn" />
	<root level="info">
		<appender-ref ref="console" />
	</root>
	
	<!--系统操作日志-->
    <root level="info">
        <appender-ref ref="file_info" />
        <appender-ref ref="file_error" />
    </root>
</configuration>
























