多线程死锁、活锁、无锁、饥饿

并发编程的核心在于维护和处理多线程,理解并发中存在的各种异常,死锁、活锁、无锁、饥饿都是可能让多线程异常阻塞的场景

MyBatis-Plus中常用的Lambda无SQL父类方法

MyBatis-Plus是一个基于MyBatis的增强脚手架,使用其封装好的各类接口可能在实际开发过程无需手写SQL快速完成业务开发,尤其在JDK1.8后的Lambda语法下使用更为方便

SpringContextHolder工具类自由获取Bean

在工程中会存在一些未被纳入Spring框架管理的类,想调用Spring容器中的bean时可以通过SpringContextHolder工具类的getBean方法来获取指定的bean,比如过滤器、拦截器、自动任务等

Crontab配置定时任务处理日常工作

Linux服务器测试环境或正式生产环境常常设计一些定时例行处理的操作,如日记备份转移清理等,利用Crontab+Shell脚本组合实现定期定时操作,确保不会应工作繁忙忘记任务导致环境异常

SVGInject插件动态加载SVG并自定义样式

HTML 中加载 SVG 有很多种方式,但如果需要在 HTML 中通过 CSS 样式自由控制 SVG 样式就必须将 svg 标签插入网页找那个成为 DOM 的一部分,本文借助 SVGInject 插件可以快速完成这一操作

Struts2 + Spring框架融合配置

Struts2框架以WebWork优秀的设计思想为核心,吸收了 Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架,本文主要是与Spring整合关键配置和实例

MySql安装错误提示找不到MSVCP120.dll

安装 MySql 出现“由于找不到 MSVCP120.dll ,无法继续执行代码。重新安装程序可能会解决此问题。”由于系统缺少 vcredist 导致,下载安装官方 vcredist 即可。

Nginx地址重写(rewrite)配置规则

UrlRewrite并非Nginx容器独有,访问地址重写一般多用于实现伪静态,实现对用户访问的URL进行重写,以达到访问地址美观、不暴露访问参数的目的,再配合应用程序可以实现很多特殊的场景

Git多仓库关联切换与主从同步提交

本文主要介绍 Git 关联多仓库的常见操作,本地分支关联到远程仓库分支后切换到新仓库,本地分支内容推送到主仓库后同步提交到从属仓库,如推送 gitee 同时推送到 github

Beyond Compare 4 无限试用方案

Beyond Compare 强大专业的文件和文件夹对比工具,可以很方便地比较出文件或文件夹的差异,支持众多种格式的对比,支持快速替换,商用软件,默认试用30天(次)+15天,过期后可以进行重复试用。

MySql数据库设置表名大小写不敏感

MySql数据库在Linux系统下默认数据库名与表名严格区分大小写,一般情况下我们创建表名习惯使用全小写,如果遇到某些从Windows服务器迁移过来的数据库可能需要设置大小写不敏感

MongoDB通过$lookup实现多表连接查询

对于数据库而言,多表连接操作可以算的上是基本操作,在 MongoDB 通过 $lookup 聚合查询可以实现多表左连接查询,在后续的版本中 $lookup 得到了一系列的增强,实现更为复杂的关联查询

JAVA单例模式中的饿汉模式与懒汉模式

在绝大多数的JAVA经典应用框架中广泛使用到了单例设计模式,单例设计模式最普遍的分类方式分类分为懒汉模式与饿汉模式两种,其主要区别在于初始化创建对象的时机不同。

前端JS对字段编码预防XSS攻击

跨站脚本攻击是比较严重的一种攻击行为,恶意脚本注入到相关页面字段中轻易获取敏感信息和向后端发起请求,前端应用应当对请求数据进行编码

合理配置php-fpm参数减少服务器内存浪费

PHP应用有时候出现503错误的时候可能内存不足导致访问网站无响应,当发现实际应用数理不多的情况,可以考虑检查是不是有可能由于php-fpm进程过多导致,可以通过参数配置解决问题