-
SpringBoot配置转义
SpringBoot配置冒号等等转义:```acgist:cache:"[password::fail]":1```还有一个问题就是值里面如果出现`${value:default}`这种字符串,默认会被当成表达式处理掉,如果没有定义`value`配置,就会变成默认值`default`,这个时候我们就需要这样配置:```value:${$:$}{value:default}```
SpringBoot -
使用Canal + Kafka + ElasticSearch记录数据库修改历史
最近有个需求需要记录某些数据库表里面的新增修改和删除日志。开始本来想直接通过注解方式实现,但是后来看了看,实现起来比较麻烦。主要是批量修改的时候很难记录日志。所以想到使用`Canal`来监听MySQL的`binlog`,然后发送修改到Kafka,然后入库到ElasticSearch。DEMO地址:[https://gitee.com/acgist/muses/tree/master/service-parent/service-log-parent](https://gitee.com/acgist/muses/tree/master/service-parent/service-log-parent)##异常```2022-10-2716:08:58.068[destination=acgist,address=/192.168.8.187:3306,EventParser]ERRORc.a.o.canal.parse.inbound.mysql.dbsync.DirectLogFetcher-I/Oerrorwhilereadingfromclientsocketjava.io.IOException:R...
canal kafka ElasticSearch -
SpringBoot OAuth2出现401问题
最近公司要求配置一个超级管理员,不需要配置角色和权限,天然拥有所有权限。所有代码改完,返现系统认证的时候老返回`401`,后来发现原来`UserDetailsService`返回的用户信息如果没有角色,那么默认就会返回`401`了,所以给他加个角色就可以了。
SpringBoot OAuth2 401 -
Neo4j常用查询语句整理
```//忽略属性@Query("MATCHp=(a:RoomNode{roomId:$roomIdA})-[*..16]-(z:RoomNode{roomId:$roomIdZ})RETURNp,LENGTH(p)")//指定属性@Query("MATCHp=(a:RoomNode{roomId:$roomIdA})-[r:RoomRelationship*..16]-(z:RoomNode{roomId:$roomIdZ})RETURNp,LENGTH(p)")//最短路径@Query("MATCH(a:RoomNode{roomId:$roomIdA}),(z:RoomNode{roomId:$roomIdZ}),p=SHORTESTPATH((a)-[*..16]-(z))RETURNp,LENGTH(p)")//多条最短路径@Query("MATCH(a:RoomNode{roomId:$roomIdA}),(z:RoomNode{roomId:$roomIdZ}),p=ALLSHORTESTPATHS((a)-[*..16]-(z))RETURNp,LENGTH(p)")//必经避让@Query(...
Neo4j Cypher -
SpringCloud配置OAuth2权限
配置SpringCloud环境OAuth2权限问题:*配置Feign调用Token*配置内网IP允许直接访问```importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.lang3.ArrayUtils;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.boot.autoconfigure.condition.ConditionalOnClass;importorg.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;importorg.springframework.context.annotation.Bean;...
SpringCloud -
Linux字体安装
最近升级了阿里云的CentOS版本,旧的字体全部没了,这里记录一下安装命令:```#查询中文字体fc-list:lang=zh#创建目录:simheimkdir-p/usr/share/fonts/simhei#拷贝字体文件:字体文件可以去到`C:\Windows\Fonts`目录下面查找yuminstallmkfontscalecd/usr/share/fonts/simheimkfontscalemdfontdir#查看结果fc-list```>如果没有安装`fc-list`执行`yuminstallfontconfig`字体安装完成应用需要重启一下才有效果
Linux ttf -
FreeMarker使用Java新版日期API
`FreeMarker`使用新版Java的事件API不能正确的格式化输出,需要添加下面配置才可以。```this.configuration.setObjectWrapper(newDefaultObjectWrapper(freemarker.template.Configuration.VERSION_2_3_31){@OverridepublicTemplateModelwrap(Objectobject)throwsTemplateModelException{if(objectinstanceofLocalDateTimelocalDateTime){returnnewSimpleDate(Timestamp.valueOf(localDateTime));}elseif(objectinstanceofLocalDatelocalDate){returnnewSimpleDate(Date.valueOf(localDate));}elseif(objectinstanceofLocalTimelocalTime){returnnewSimpleDate(Time.valueOf(localTim...
FreeMarker LocalDateTime -
OpenJDK17一些JVM参数变化
由于租用的服务器内存比较小,所以配置了一下网站的JVM参数看下有没有什么优化空间。但是配置后发现启动不了,首先提示下面错误:```UnrecognizedVMoption'PrintGCDateStamps'Error:CouldnotcreatetheJavaVirtualMachine.Error:Afatalexceptionhasoccurred.Programwillexit.```这个是由于`PrintGCDateStamps`配置已经废弃了,所以改为`-Xlog:gc::utctime`。然后还有配置日志的参数也改了:```-Xloggcisdeprecated.Willuse-Xlog:gc:./logs/gc.loginstead.Unrecognizedoption:-JARError:CouldnotcreatetheJavaVirtualMachine.Error:Afatalexceptionhasoccurred.Programwillexit.```这个就比较人性化了,直接提示该使用那个参数替换。还有很多参数都被废弃了:```[0.002s][warning][gc]-XX:+P...
OpenJDK Java JVM -
MyBatisPlus连表使用Wrapper
```SELECTa.*,b.*FROMaLEFTJOINbONa.id=b.id${ew.customSqlSegment}page(Pagepage,Wrapperew)```**注意:条件名称必须`ew`**
MyBatisPlus Wrapper 连表 -
web.xml常用配置
```www.acgist.comindex.jspindex.htmlencodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8encodingFilter/*adminFiltercom.acgist.web.filter.AdminFilteradminFilter/admin/*pageCachingFilternet.sf.ehcache.constructs.web.filter.SimplePageCachingFiltersuppressStackTracesfalsecacheNamepageCachepageCachingFilter/imagepageCachingFilter/articlepageCachingFilter/common/*pageCachingFilter/index.jspcontextConfigLocationclasspath*:/applicationContext.xmlmvcorg.springframework.web.servlet.Dispat...
web.xml -
Tomcat常用配置
##server.xml``````##配置日志```#LicensedtotheApacheSoftwareFoundation(ASF)underoneormore#contributorlicenseagreements.SeetheNOTICEfiledistributedwith#thisworkforadditionalinformationregardingcopyrightownership.#TheASFlicensesthisfiletoYouundertheApacheLicense,Version2.0#(the"License");youmaynotusethisfileexceptincompliancewith#theLicense.YoumayobtainacopyoftheLicenseat##http://www.apache.org/licenses/LICENSE-2.0##Unlessrequiredbyapplicablelaworagreedtoinwriting,software#distributedundertheLicenseisdistributedon...
Tomcat -
systemd常用配置
配置`linux`服务`vi/etc/systemd/system/service.service`内容:```[Unit]Description=描述信息After=network.targetnetwork-online.targetWants=network.targetnetwork-online.target[Service]User=root#forking:本身就是后台进程Type=simple|forking|notifyKillMode=processExecStart=启动命令ExecReload=/bin/kill-HUP$MAINPIDExecStop=/bin/kill-QUIT$MAINPID#always:如果不是关闭自动重启Restart=no|always|on-failureRestartSec=5s[Install]WantedBy=multi-user.target```然后加载服务:```systemctldaemon-reload```配置里面所有命令需要使用完整路径,否者可能提示下面错误:```May0915:44:02acgistsystemd[1]:servi...
systemd -
Ehcache常用配置
``````
Ehcache -
nginx常用配置
```usernginx;worker_processes1;pid/var/run/nginx.pid;error_log/var/log/nginx/error.logwarn;events{useepoll;worker_connections65536;}http{include/etc/nginx/mime.types;include/etc/nginx/conf.d/*.conf;default_typeapplication/octet-stream;gzipon;gzip_typestext/xmlimage/x-icontext/javascripttext/csstext/plainimage/gifimage/jpegimage/pngimage/jpgapplication/jsonapplication/x-javascriptimage/svg+xmlapplication/vnd.ms-fontobjectapplication/x-font-ttffont/opentypefont/x-woff;gzip_min_length1k;log_formatmain'$remote_...
nginx -
MySQL常用配置
```[mysqld]server_id=1user=mysqlport=3306bind_address=0.0.0.0#default_time_zone=systemlog_bin=mysql-binbinlog_format=rowmax_binlog_size=2048Mexpire_logs_days=30socket=/tmp/mysql.sock#tmpdir=/tmpdatadir=/var/lib/mysql#basedir=/usr/local/mysql-5.7.26log_error=/var/lib/mysql/mysql-error.log#pid_file=/var/run/mysqld/mysqld.pid#log_output=fileslow_query_log=onlong_query_time=5slow_query_log_file=/var/lib/mysql/mysql-slow.loglog_queries_not_using_indexes=off#general_log=off#general_log_file=/var/lib/mysql/mysql-s...
MySQL -
Maven常用配置
```sonatype_releasesacgistpasswordsonatype_snapshotsacgistpasswordrepo0centralaliyunhttps://maven.aliyun.com/repository/centralrepo1centralHumanReadableNameforthisMirror.http://repo1.maven.org/maven2/repo2centralHumanReadableNameforthisMirror.http://repo2.maven.org/maven2/nexus*localhttp://192.168.1.100:9999/nexus/content/groups/public/gpggpgpasswordnexusnexusPublicRepositorieshttp://centraltruetruenexusPublicRepositorieshttp://centraltruetruegpgnexus```
Maven -
logback常用配置
```${system.name}${system.path}/${system.name}.log${system.history}${system.path}/%d{yyyy-MM,aux}/${system.name}.%d{yyyy-MM-dd}.log.gz${system.buffer}false${system.charset}${system.pattern}${system.queue}true0${system.charset}${system.pattern}```
logback -
log4j常用配置
```log4j.rootLogger=info,FILE,Console#这个选项用于控制监控logger的日志不会输出到rootlogger,否则无论会产生许多重复的数据,同时也会影响性能log4j.additivity.monitorLogger=false#文件log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.FILE.File=logs/www.acgist.com.loglog4j.appender.FILE.Append=truelog4j.appender.FILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.FILE.BufferedIO=truelog4j.appender.FILE.BufferSize=8192log4j.appender.FILE.layout.ConversionPattern=[www.acgist.com]%d%-10r%-10p[%t]%40c%x--%m%nlog4j.appender.FILE.e...
log4j -
docker常用配置
##配置加速```vi/etc/docker/daemon.json{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}systemctlrestartdocker```##配置日志如果容器日志输出到控制台,然后没有配置日志清除策略,那么日志就会一直累加直到占满磁盘。```#vim/etc/docker/daemon.json{"log-driver":"json-file","log-opts":{"max-size":"512m","max-file":"8"}}```
docker -
docker-compose常用配置
```version:"3.1"services:redis:container_name:redisimage:redis:6.2.6restart:alwaysprivileged:truecommand:redis-server/etc/redis/redis.confports:-6379:6379volumes:-/etc/localtime:/etc/localtime:ro-$PWD/redis/data:/data-$PWD/redis/redis.conf:/etc/redis/redis.confenvironment:-TZ=Asia/Shanghaies:container_name:esimage:docker.elastic.co/elasticsearch/elasticsearch:7.9.1restart:alwaysprivileged:trueports:-9200:9200-9300:9300volumes:-/etc/localtime:/etc/localtime:ro-$PWD/elasticsearch/data:/usr/share/elasticsearch...
docker-compose