之前见到的一个企业级项目,看到它一长串的配置,直接懵掉,因为它是基于yml文件做的配置,所以有点迷…
哪里改springboot的启动标志?
spring boot启动总会显示这样的图标,但是我想不一样
方法:
首先我们在resource目录下面放入一个banner.txt文件
Spring Boot启动项目的时候就会优先启动这个文件中的内容。
然后我们用在线生成字符图标工具
http://www.network-science.de/ascii/
http://patorjk.com/software/taag/
找了一个shell的文本,放在resource目录下面放入一个banner.txt里,启动如下:
到这会不会感觉它还是不够美观,那么加点颜色,岂不是更棒!
Spring Boot提供了一个枚举类AnsiColor,这个类可以控制banner.txt中的字符颜色,而且非常容易使用。
比如我可以将字符设置成颜色:BRIGHT_YELLOW
版本号颜色设置成:BRIGHT_BLUE
${AnsiColor.BRIGHT_YELLOW}
_ _ _ _ _ _
/ /\ / /\ / /\ /\ \ _\ \ _\ \
/ / \ / / / / / / / \ \ /\__ \ /\__ \
/ / /\ \__ / /_/ / / / / /\ \ \ / /_ \_\ / /_ \_\
/ / /\ \___\ / /\ \__/ / / / / /\ \_\ / / /\/_/ / / /\/_/
\ \ \ \/___/ / /\ \___\/ / / /_/_ \/_/ / / / / / /
\ \ \ / / /\/___/ / / /____/\ / / / / / /
_ \ \ \ / / / / / / / /\____\/ / / / ____ / / / ____
/_/\__/ / / / / / / / / / / /______ / /_/_/ ___/\ / /_/_/ ___/\
\ \/___/ / / / / / / / / / /_______\ /_______/\__\/ /_______/\__\/
\_____\/ \/_/ \/_/ \/__________/ \_______\/ \_______\/
效果如下:
还有设置版本号的一些参数:
${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