KKFileView(八)——系统配置
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(八)——系统配置相关推荐
- CMSIS-RTOS RTX实时操作系统介绍
转载 http://www.cnblogs.com/horal/p/7841148.html 一.序言 本资料是Trevor Martin编写的<The Designers Guide to t ...
- 数据中心规划设计中值得注意的八个问题
规划设计的优劣,是否最佳化,规划的各种功能指标是否能实现,只有在系统运行后才能做客观的评估,很多问题要经过较长时间,甚至是设备或系统的一个生命周期内才能暴露出来.因此,从运维管理的角度分析规划设计中存 ...
- 《网络攻防实践》第八周作业
<网络攻防技术>第八章学习 一.Linux操作系统基本框架 本章通过介绍Linux的结构和安全机制,引出了对Linux系统的攻击过程,包括首先从远程侵入主机,然后在本地获得权限,并提升权限 ...
- 【白话设计模式八】命令模式(Command)
为什么80%的码农都做不了架构师?>>> #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...
- [转载]Linux用户管理全攻略(八)
原文地址:Linux用户管理全攻略(八)作者:ZOL_心蓝蓝 Linux 系统中的超级权限的控制 作者:北南南北 赞助: eTony,pandonny,懒猫, Arch 来自:LinuxSir.Org ...
- 中小企业CRM评测-八百客
系统管理<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 如何评 ...
- linux学习第八周总结
linux学习第八周总结 本周学习了两个服务,DNS和ansible 由于这些服务很复杂,我也只能是到达刚了解或者是刚刚入门的程度,所以只说一些简单基本的东西,简单总结. 一.DNS服务 1.简介 域 ...
- Hi3518EV300芯片linux系统配置USB Camera功能
Hi3518EV300芯片linux系统配置USB Camera功能 一,安装好虚拟机VMware® Workstation 15 Pro 和Ubuntu16.04 64位版本:并且安装应用软件,配置 ...
- 网络攻防实践 第八周作业
MarkdownPad Document 第八周作业 第一部分 #教材学习 1.1Linux操作系统概述 ubuntu.debian.fedora.centos.rhel.opensuse和stack ...
最新文章
- 蓝牙连接不上车要hfp_蓝牙耳机的音质由什么因素决定?价格高的蓝牙耳机音质一定好吗?...
- Android 网络通信框架Volley简介(Google IO 2013)
- python编程下载安卓版-python编程狮app下载|
- Py之tkinter:python最简单的猜字小游戏带你进入python的GUI世界
- 如何用代码的方式取出SAP C4C销售订单创建后所有业务伙伴的数据
- COM_ASET check in CRM Middleware inbound scenario
- oracle10g 监听服务无法启动
- 学术诚信是科学精神的基底
- C语言在linux终端下实现2048小游戏:第二版
- Nginx源码分析 - 模块的赋值及编号 --- 方便了解nginx模块
- Linux下unzip乱码问题解决
- html 两个表合并,SQL中将两个表合并成一个新表
- Linux驱动开发|WiFi驱动
- SQL Server 2019 软件安装包免费下载以及安装教程
- 【作业锦集】机器人学导论-空间变换及Matlab实现(part-2)
- keras图像风格迁移
- matlab投资组合权重,马科维茨投资组合理论(均方模型)学习笔记――基于Matlab(四)...
- Java格式化百分比
- windows下使用route添加路由
- 直播和短视频的区别以及直播能带来什么效果?