技术博文
未读Mybatis缓存介绍Mybatis本身包含了一个强大的查询缓存特性,大幅提升了查询的效率,分为一级缓存和二级缓存
一级缓存:也叫本地缓存,默认开启,作用范围为Sqlsession级别,
二级缓存:需要配置开启,作用范围为基于mapper的namespace级别
同时也提供了对外的缓存接口,支持接入第三方缓存组件,如Memcache、OScache、EHcache等
一级缓存原理
在一次数据库会话中(同一个sqlSession中),操作数据库时需要构建Sqlsession对象,在该对象会以HashMap的数据结构储存缓存数据
当执行查询语句时,会在缓存中进行获取,未获取到将会查询数据库,并将数据写入到缓存,后续同样的查询将会在缓存中获取数据
当SqlSession调用了close()方法,会释放掉一级缓存PerpetualCache对象,一级缓存将不可用;若调用clearCache(),会清空PerpetualCache对象中的数据
二级缓存原理原理二级缓存的作用域是整个SqlSessionFactory实例(通常一个 MyBatis应用程序只需要一个SqlSessionFac ...
待博主完善……
使用cloudflare部署works项目,可以代理访问你想访问的网站,无论是访问被墙的网站或者是加速访问国外的网站,都非常实用!!!
用法举例:
因为github在国内访问时灵时不灵,可以部署代理访问网站、代理下载github上的文件
jsdelivr 和 unpkg 等CDN加速网站在国内使用的效果非常不理想,通过代理他们的网站使得它们能快速访问
各种国外的AI和人工智能网站的访问
暂时列出这几点,更多的用途小伙伴们可以自己去尝试……
使用此功能必备条件1. 一个Cloudflare账号2. 一个托管在Cloudflare上的域名
首先,使用Cloudflare账号部署works项目 待博主完善……
rsync实现Windows与Linux文件同步部署文档1. 部署准备与说明1.1 前置说明
该方案使用rsync程序进行数据的同步与备份。
该程序在Linux系统的客户端为rsync;Windows系统的服务端为cwRsyncServer
我们将Windows系统作为服务端,将Linux系统作为客户端,采用Linux客户端把文件推送到Windows服务器端的同步策略进行数据的同步
数据同步为无差异同步,以客户端的数据为准,当客户端数据有增删时,服务端在同步时也会进行响应的数据增删。
无网络环境的话,需要提前下载好Windows和Linux的安装包,点击对应系统进行下载
1.2 安装软件2. 安装Windows服务端cwRsyncServer2.1 创建名为SvcCWRSYNC的Windows管理员账户Windows 10:
点击开始菜单,点击上方的用户头像图标,选择更改账户设置
弹窗后,点击其他用户,点右侧的“+”图标,将其他人添加到这台电脑
弹窗后,点击我没有这个人的登录信息
页面更新后,点击添加一个没有 Microsoft 帐户的用户
弹窗后,设置用户名为SvcCWRSYNC ...
有时间再自己整理一下,先贴个别人的方法……https://cloud.tencent.com/document/product/213/46000
https://blog.090227.xyz/p/CF-Workers-docker.io/
科学上网|建站
未读白嫖Cloudflare和建站的过程难免会需要用到域名,有时候虽然是必要选项,但还是因为诸多限制不想去购买域名,比如
国内购买域名需要备案,很麻烦
不确定自己此功能会使用多久,只想体验一把
国外一些购买域名需要开通国外的银行卡以及账户,难操作
购买后,不想分心和花钱去做托管和攻击防护
因为某些用途担心域名被墙,或者假墙
所以如果没有专业和商业等固定需求,我觉得还是能白嫖就白嫖,虽然免费的都是二级域名,但是能用就行啊
申请免费域名的网站
CloudDNS 成立于2010年,是欧洲最大的DNS服务商,通过全球Anycast DNS网络提供快速、安全的DNS托管服务,包括GeoDNS,Anycast DNS和DDoS保护的DNS。提供免费DNS解析服务,包括:2个单独DNS服务器、1个DNS区域、50条DNS记录、每月500K DNS查询、1邮件转发、动态DNS、网络重定向等。最主要的是它目前没!有!限!制!域名的使用期限,可以一直用啊 域名后缀.cloudns.ch||.cloudns.be等,可以自定义域名服务器,双向解析 如何申请一个免费的CloudDNS的域名 不想写了偷懒 ...
科学上网|建站
未读节点测速网址cloudflare官方123456> Cloudflare 10M测速地址:https://speed.cloudflare.com/__down?bytes=10000000> Cloudflare 50M测速地址:https://speed.cloudflare.com/__down?bytes=50000000> Cloudflare 100M测速地址:https://speed.cloudflare.com/__down?bytes=100000000> Cloudflare 200M测速地址:https://speed.cloudflare.com/__down?bytes=200000000> Cloudflare:http://cp.cloudflare.com/generate_204
Cachefly1> http://cachefly.cachefly.net/50mb.test
Google12345678910111213141516Google Chrome浏览器用来检测网络连通性的URL,也是 ...
SpringBoot 项目中使用Log4j2详细(避坑)以下部分内容转载整理自 log4j2 实际使用详解_vbirdbest 的博客-CSDN 博客_log4j2 ,感谢 vbirdbest 的相关知识分享
首先,认识一下三胞胎
log4j 是 apache 实现的一个开源日志组件
logback 同样是由 log4j 的作者设计完成的,拥有更好的特性,用来取代 log4j 的一个日志框架,是 slf4j 的原生实现
Log4j2 是 log4j 1.x 和 logback 的改进版,据说采用了一些新技术(无锁异步、等等),使得日志的吞吐量、性能比 log4j 1.x 提高 10 倍,并解决了一些死锁的 bug,而且配置更加简单灵活
然后,了解一下,使用 slf4j+log4j 和直接用 log4j 的区别slf4j 是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如 log4j、logback),使用接口的好处是当项目需要更换日志框架的时候,只需要更换 jar 和配置,不需要更改相关 java 代码 ...
遇到的问题:使用的ThreadPoolExecutor线程池submit异步执行任务后,处理的任务没有完成,但是没有任何错误信息抛出,难以定位问题。
原因:线程在使用submit提交执行后,异步任务会被包装为 java.util.concurrent.FutureTask类,这里将异常捕获后不会抛出如下图所示。JDK中认为在异步任务中,异步的异常也是属于异步结果,出现异常时会在获取任务结果的时候,将异常重新包装,需要在返回手动get才能看到。
解决方法:
方法一、使用 excute 方法进行执行,使用该方法后编译就要求必须进行异常的处理 方法二、submit和Callable结合使用,Callable返回结果,future.get()获取异常并处理
此文章为本人在CSDN原创文章,迁移到个人博客
遇到的问题:查询时报错信息
1Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'xxx.b.step_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
原因:MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表HAVING条件或ORDER BY列表的查询引用,在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。
解决方法:在mysql上执行 bash select @@global.sql_mode,可看到结果中存在ONLY_FULL_GROUP_BY SQL
修改mysql配置文件my.cnf,在末尾添加
sql_m ...