2021SC@SDUSC

本次报告着重于application.properties类和config文件夹,从中了解springboot的各种配置

目录

一、springboot的多环境配置

profile

二、application.properties中的有关其他配置

三、config配置


一、springboot的多环境配置

在本开发项目中,开发环境、测试环境、补丁环境都是有不同的配置的。各个环境可能用不同的数据库,为了便于开发,spring提供了多环境配置文件切换功能。比如:application-dev.yml表示测试环境配置、application-test.yml表示测试环境配置、application-prod.yml表示补丁环境配置、application.yml则是默认环境。如此,我们让那个配置生效,只需要指定对应的配置文件即可

profile

Profile是Spring对不同环境提供不同配置功能的支持, 可以通过激活 , 制定参数等方式快速切换环境

本项目通过application.properties实现多环境配置

server.port = ${KK_SERVER_PORT:8012}
server.servlet.context-path= ${KK_CONTEXT_PATH:/}

二、application.properties中的有关其他配置

1、有关路径

#文件资源路径(默认为打包根路径下的file目录下)
file.dir = ${KK_FILE_DIR:default}
#openoffice home路径
office.home = ${KK_OFFICE_HOME:default}

2、缓存配置,其中实现了缓存定时自动清理的功能

#缓存实现类型,不配默认为内嵌RocksDB(type = default)实现,可配置为redis(type = redis)实现(需要配置spring.redisson.address等参数)和 JDK 内置对象实现(type = jdk),
cache.type =  ${KK_CACHE_TYPE:jdk}
#redis连接,只有当cache.type = redis时才有用
spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:127.0.0.1:6379}
spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:}
#缓存是否自动清理 true 为开启,注释掉或其他值都为关闭
cache.clean.enabled = ${KK_CACHE_CLEAN_ENABLED:true}
#缓存自动清理时间,cache.clean.enabled = true时才有用,cron表达式,基于Quartz cron
cache.clean.cron = ${KK_CACHE_CLEAN_CRON:0 0 3 * * ?}

 3、文件类型

#文本类型,默认如下,可自定义添加
simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd}
#多媒体类型,默认如下,可自定义添加
media = ${KK_MEDIA:mp3,wav,mp4,flv}
#是否开启多媒体类型转视频格式转换,目前可转换视频格式有:avi,mov,wmv,3gp,rm
#请谨慎开启此功能,建议异步调用添加到处理队列,并且增加任务队列处理线程,防止视频转换占用完线程资源,转换比较耗费时间,并且控制了只能串行处理转换任务
media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false}
#支持转换的视频类型
convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm}
#office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换)
office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image}

 4、水印配置

#水印内容
#例:watermark.txt = ${WATERMARK_TXT:凯京科技内部文件,严禁外泄}
#如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:}
watermark.txt = ${WATERMARK_TXT:}
#水印x轴间隔
watermark.x.space = ${WATERMARK_X_SPACE:10}
#水印y轴间隔
watermark.y.space = ${WATERMARK_Y_SPACE:10}
#水印字体
watermark.font = ${WATERMARK_FONT:微软雅黑}
#水印字体大小
watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
#水印字体颜色
watermark.color = ${WATERMARK_COLOR:black}
#水印透明度,要求设置在大于等于0.005,小于1
watermark.alpha = ${WATERMARK_ALPHA:0.2}
#水印宽度
watermark.width = ${WATERMARK_WIDTH:180}
#水印高度
watermark.height = ${WATERMARK_HEIGHT:80}
#水印倾斜度数,要求设置在大于等于0,小于90
watermark.angle = ${WATERMARK_ANGLE:10}

三、config配置

config的配置信息大致由上面几个类所构成

其中AppBanner主要配置的是运行后控制台输出的内容

ConfigConstants:基本信息配置,包括ftp账号密码,以及文件的基本路径等常用内容

private static Boolean cacheEnabled;private static String[] simTexts = {};private static String[]  medias = {};private static String[] convertMedias = {};private static String mediaConvertDisable;private static String officePreviewType;private static String officePreviewSwitchDisabled;private static String ftpUsername;private static String ftpPassword;private static String ftpControlEncoding;private static String baseUrl;private static String fileDir = ConfigUtils.getHomePath() + File.separator + "file" + File.separator;private static CopyOnWriteArraySet<String> trustHostSet;private static String pdfDownloadDisable;private static Boolean fileUploadDisable;public static final String DEFAULT_CACHE_ENABLED = "true";public static final String DEFAULT_TXT_TYPE = "txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd";public static final String DEFAULT_MEDIA_TYPE = "mp3,wav,mp4,flv";public static final String DEFAULT_OFFICE_PREVIEW_TYPE = "image";public static final String DEFAULT_OFFICE_PREVIEW_SWITCH_DISABLED = "false";public static final String DEFAULT_FTP_USERNAME = null;public static final String DEFAULT_FTP_PASSWORD = null;public static final String DEFAULT_FTP_CONTROL_ENCODING = "UTF-8";public static final String DEFAULT_BASE_URL = "default";public static final String DEFAULT_FILE_DIR_VALUE = "default";public static final String DEFAULT_TRUST_HOST = "default";public static final String DEFAULT_PDF_DOWNLOAD_DISABLE = "true";public static final String DEFAULT_FILE_UPLOAD_DISABLE = "false";

Reddisson Config:客户端配置,管理客户端的线程,顺序等

ScheduleClean Config:定期清理缓存配置,这是我认为该项目的一个亮点,默认的是每晚3点清理一次缓存

@Scheduled(cron = "${cache.clean.cron:0 0 3 * * ?}")public void clean() {logger.info("Cache clean start");cacheService.cleanCache();KkFileUtils.deleteDirectory(fileDir);logger.info("Cache clean end");}

WaterMarkConfigConstants:水印配置管理,例如水印字体大小,添加位置等内容

WebConfig:访问外部文件配置

public void addResourceHandlers(ResourceHandlerRegistry registry) {String filePath = ConfigConstants.getFileDir();LOGGER.info("Add resource locations: {}", filePath);registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/","classpath:/resources/","classpath:/static/","classpath:/public/","file:" + filePath);}
}

KKFileView(八)——系统配置相关推荐

  1. CMSIS-RTOS RTX实时操作系统介绍

    转载 http://www.cnblogs.com/horal/p/7841148.html 一.序言 本资料是Trevor Martin编写的<The Designers Guide to t ...

  2. 数据中心规划设计中值得注意的八个问题

    规划设计的优劣,是否最佳化,规划的各种功能指标是否能实现,只有在系统运行后才能做客观的评估,很多问题要经过较长时间,甚至是设备或系统的一个生命周期内才能暴露出来.因此,从运维管理的角度分析规划设计中存 ...

  3. 《网络攻防实践》第八周作业

    <网络攻防技术>第八章学习 一.Linux操作系统基本框架 本章通过介绍Linux的结构和安全机制,引出了对Linux系统的攻击过程,包括首先从远程侵入主机,然后在本地获得权限,并提升权限 ...

  4. 【白话设计模式八】命令模式(Command)

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...

  5. [转载]Linux用户管理全攻略(八)

    原文地址:Linux用户管理全攻略(八)作者:ZOL_心蓝蓝 Linux 系统中的超级权限的控制 作者:北南南北 赞助: eTony,pandonny,懒猫, Arch 来自:LinuxSir.Org ...

  6. 中小企业CRM评测-八百客

    系统管理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 如何评 ...

  7. linux学习第八周总结

    linux学习第八周总结 本周学习了两个服务,DNS和ansible 由于这些服务很复杂,我也只能是到达刚了解或者是刚刚入门的程度,所以只说一些简单基本的东西,简单总结. 一.DNS服务 1.简介 域 ...

  8. Hi3518EV300芯片linux系统配置USB Camera功能

    Hi3518EV300芯片linux系统配置USB Camera功能 一,安装好虚拟机VMware® Workstation 15 Pro 和Ubuntu16.04 64位版本:并且安装应用软件,配置 ...

  9. 网络攻防实践 第八周作业

    MarkdownPad Document 第八周作业 第一部分 #教材学习 1.1Linux操作系统概述 ubuntu.debian.fedora.centos.rhel.opensuse和stack ...

最新文章

  1. 蓝牙连接不上车要hfp_蓝牙耳机的音质由什么因素决定?价格高的蓝牙耳机音质一定好吗?...
  2. Android 网络通信框架Volley简介(Google IO 2013)
  3. python编程下载安卓版-python编程狮app下载|
  4. Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界
  5. 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
  6. COM_ASET check in CRM Middleware inbound scenario
  7. oracle10g 监听服务无法启动
  8. 学术诚信是科学精神的基底
  9. C语言在linux终端下实现2048小游戏:第二版
  10. Nginx源码分析 - 模块的赋值及编号 --- 方便了解nginx模块
  11. Linux下unzip乱码问题解决
  12. html 两个表合并,SQL中将两个表合并成一个新表
  13. Linux驱动开发|WiFi驱动
  14. SQL Server 2019 软件安装包免费下载以及安装教程
  15. 【作业锦集】机器人学导论-空间变换及Matlab实现(part-2)
  16. keras图像风格迁移
  17. matlab投资组合权重,马科维茨投资组合理论(均方模型)学习笔记――基于Matlab(四)...
  18. Java格式化百分比
  19. windows下使用route添加路由
  20. 直播和短视频的区别以及直播能带来什么效果?

热门文章

  1. 模糊PID控制器MATLAB仿真探讨,基于Matlab的模糊自整定PID控制器仿真研究
  2. 阿里3.10笔试第一题
  3. vscode常用看代码的功能
  4. Wordnet简单实用画树形结构
  5. JAVA看云判断天气_看云测天气_气象常识天气知
  6. 传智播客毕业之后的感想
  7. java mkfifo_pipe/popen/mkfifo
  8. OpenGL Performance Optimization
  9. Spring Boot 面试,一个问题就干趴下了。
  10. W7正在锁定计算机,win7系统设置锁定屏幕超时的操作方法