• 【项目SpringBoot配置详解】


    之前见到的一个企业级项目,看到它一长串的配置,直接懵掉,因为它是基于yml文件做的配置,所以有点迷…

    🐱福利

    想不想自定义spring Boot启动Logo

    哪里改springboot的启动标志?
    spring boot启动总会显示这样的图标,但是我想不一样
    在这里插入图片描述
    方法:
    首先我们在resource目录下面放入一个banner.txt文件
    Spring Boot启动项目的时候就会优先启动这个文件中的内容。

    然后我们用在线生成字符图标工具

    http://www.network-science.de/ascii/
    http://patorjk.com/software/taag/
    
    • 1
    • 2

    找了一个shell的文本,放在resource目录下面放入一个banner.txt里,启动如下:
    在这里插入图片描述
    到这会不会感觉它还是不够美观,那么加点颜色,岂不是更棒!
    Spring Boot提供了一个枚举类AnsiColor,这个类可以控制banner.txt中的字符颜色,而且非常容易使用。
    比如我可以将字符设置成颜色:BRIGHT_YELLOW
    版本号颜色设置成:BRIGHT_BLUE

    ${AnsiColor.BRIGHT_YELLOW}
            _                 _       _           _               _              _
           / /\              / /\    / /\        /\ \            _\ \           _\ \
          / /  \            / / /   / / /       /  \ \          /\__ \         /\__ \
         / / /\ \__        / /_/   / / /       / /\ \ \        / /_ \_\       / /_ \_\
        / / /\ \___\      / /\ \__/ / /       / / /\ \_\      / / /\/_/      / / /\/_/
        \ \ \ \/___/     / /\ \___\/ /       / /_/_ \/_/     / / /          / / /
         \ \ \          / / /\/___/ /       / /____/\       / / /          / / /
     _    \ \ \        / / /   / / /       / /\____\/      / / / ____     / / / ____
    /_/\__/ / /       / / /   / / /       / / /______     / /_/_/ ___/\  / /_/_/ ___/\
    \ \/___/ /       / / /   / / /       / / /_______\   /_______/\__\/ /_______/\__\/
     \_____\/        \/_/    \/_/        \/__________/   \_______\/     \_______\/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    效果如下:
    在这里插入图片描述
    还有设置版本号的一些参数:

    ${application.version} 这个是MANIFEST.MF文件中的版本号
    ${application.formatted-version} 这个是上面的的版本号前面加v后上括号
    ${spring-boot.version} 这个是springboot的版本号
    ${spring-boot.formatted-version}同上

    搞明白了配置文件的一系列属性的意义!

    server: # springboot的tomcat服务器的配置
      port: 8080  # 服务器端口号
      servlet:   # servlet配置
        context-path: /XX # 启动的根路径 如:localhost:8080/xx/你的请求 
    
    spring: # spring的相关配置
      servlet:
        multipart: # spring中上传文件的配置
          max-file-size: 10MB #单个文件上传大小(默认为1MB)
          max-request-size: 50MB # 上传文件总大小
      profiles: # 版本控制
        active: '@profile.active@' # 这里参数本来是同resource下application-dev.yml的dev这块值,使用@profile.active@是同maven的profile一起控制
      datasource: # 配置数据源
        driverClassName: xxxx # 数据库驱动类名
        type: com.alibaba.druid.pool.DruidDataSource # dataSource 数据源类型,有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”)
        druid: # 使用德鲁伊连接池
          connection-properties: xxxx #连接属性。比如设置一些连接池统计方面的配置
          filters: stat #配置的是插件,常用的插件有stat,wall,slf4j(stat:监控统计,wall:防御SQL注入,slf4j:日志监控)
          initial-size: 5 # 初始化多少个连接
          max-active: 20 #连接池中最多支持多少个活动会话
          max-pool-prepared-statement-per-connection-size: 20 #每个连接最多缓存多少个SQL
          max-wait: 60000 # 程序向连接池中请求连接时,超过maxWait的值后,认为本次请求失败,即连接池
          min-evictable-idle-time-millis: 300000 #池中某个连接的空闲时长达到 N 毫秒后, 连接池在下次检查空闲连接时将回收该连接,要小于防火墙超时设置
          min-idle: 5 #回收空闲连接时,将保证至少有minIdle个连接.
          pool-prepared-statements: true #缓存通过以下两个方法发起的SQL
          stat-view-servlet: #提供监控信息展示的html页面,提供监控信息的JSON API
            enabled: true #是否启用StatViewServlet默认值true
            login-password: 123456 #
            login-username: admin #
            reset-enable: false #
            url-pattern: /druid/* #
          test-on-borrow: false #程序 申请 连接时,进行连接有效性检查(低效,影响性能)
          test-on-return: false #程序 返还 连接时,进行连接有效性检查(低效,影响性能)
          test-while-idle: true #当程序请求连接,池在分配连接时,是否先检查该连接是否有效。(高效)
          time-between-eviction-runs-millis: 60000 # 检查空闲连接的频率,单位毫秒, 非正整数时表示不进行检查
          use-global-data-source-stat: true #  合并多个DruidDataSource的监控数据
          validation-query: SELECT 1 FROM DUAL #检查池中的连接是否仍可用的 SQL 语句,drui会连接到数据库执行该SQL
          web-stat-filter:  #统计 web 应用请求中所有的数据库信息
            enabled: true是否启用StatFilter默认值true
            exclusions: '*.js,*.gif,*.jpg,*.bmp,/druid/*'
            url-pattern: /*
      jpa: # 配置jpa
        database: MYSQL # 数据库源
        generate-ddl: false # JPA是否初始化
        hibernate: # 依赖hibernate
          naming:
            physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl# 全限定名
        properties:
          hibernate:
            dialect: org.hibernate.dialect.MySQL5Dialect
        show-sql: false # 是否展示sql语句
      activiti:  # 工作流
        check-process-definitions: false #检查Activiti数据表是否存在及版本号是否匹配
        database-schema-update: true #数据库更新策略
        history-level: full #历史数据,保存到何种粒度
      cors:#配置跨域访问
          enabled: true
          allowed-origins: '*'#可接受的域,是一个具体域名或者*,代表任意
          allowed-methods: 'OPTIONS,GET,POST,PUT,DELETE' # 可接受的请求方式
          allowed-headers: 'x-requested-with,Cache-Control,Pragma,Content-Type,Authorization' # 允许携带的头
          allow-credentials: 'true' # 是否允许携带cookie,默认情况下,cors不会携带cookie,除非这个值是true
          max-age: '1800'# 本次许可的有效时长,单位是秒,过期之前的ajax请求就无需再次进行预检了
        jwt: # 跨域认证解决方案
          enabled: true
          encrypt-jwt-key: base.archetype  #加密密钥
          token-expire-time: 0 # token过期时间
          url-patterns: /com/* #  拦截路径
          allowed-paths: /com/authorizations/login# 鉴权后的允许放行路径
        orika:# 持久化层对应的实体对象与数据传输对象之间的映射工具
          enabled: true
          useBuiltinConverters: true
          useAutoMapping: true
          mapNulls: false
          dumpStateOnException: false
          favorExtension: false
          captureFieldContext: false  
        swagger: # api管理工具
          enabled: true
          title: XXX # 文档名
          version: V1.0.1 #版本
          base-package: cn.itfu.server.api# 扫描的包
          base-path: /** # 访问路径
          globalOperationParameters[0]: # 全局操作说明
            name: Authorization
            description: 请求接口所需令牌
            modelRef: string # 类型
            parameterType: header 
            required: false
        job: # 定时工作、定时任务
          enabled: true #开启任务管理
          job-parameters[0]: #任务列表
            cron: '0 0 0 * * ?'  #cron表达式
            jobClass: cn.net.weilai.ha #Job相关的类全名
            jobNumber: job1 #Job编号
            jobGroup: group1 #Job任务分组
            enabled: true #Job是否启用
        jpush: # 推送
          enabled: true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
  • 相关阅读:
    领航先锋案例!DevOps重塑研发运维体系,共筑XOps新蓝图
    金仓数据库KingbaseES 插件kdb_database_link
    AutoGPT实战
    五、肺癌检测-数据集训练 training.py model.py
    @Reference 、@Resource和@Autowired的简单区分
    「网页开发|前端开发|Vue」07 前后端分离:如何在Vue中请求外部数据
    2023.11.9 IDEA 配置 Lombok
    购物网站系统
    03-vue-cli-项目创建
    网络爬虫——urllib(4)文末好书推荐
  • 原文地址:https://blog.csdn.net/weixin_43431218/article/details/126156596