自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西召

公众号「西召」作者,关于技术,还有阅读,写作和思考...

原创 DevOps: 使用Maven插件实现分环境配置和版本检查

目录 一个故事(事故) 分环境 分环境实现 指定环境打包的缺点 只打一个包 版本检查 git-commit-id-plugin 版本检查地址 总结 相关资源 DevOps是Development和Operations的组合词,作为一名软件工程师或者系统架构师,对于系统的开发和部署需要有充分...

2019-04-20 23:35:32 158 0

原创 从一个电商平台的库存同步谈性能优化和方案落地

背景 库存同步相关概念 库存流转过程 方案 问题分析 头脑风暴 确定方案 细化方案 实施 业务精简和标准化 优化消息处理的逻辑 队列操作高性能 CPU使用过高 总结 下面的案例来自笔者的实际工作经历,涉及到的系统是笔者负责开发和维护的,一个国外的电商平台。 如果你对电商系统有...

2019-04-16 17:54:10 762 0

原创 MySQL索引与查询优化

目录 About MySQL Why MySQL MySQL Index Why Index 索引是如何工作的 如何使用 创建索引 查看索引 删除索引 索引的使用原则 写操作比较频繁的列慎重加索引 索引越多占用磁盘空间越大 不要为输出列加索引 考虑维度优势 对短小的值加索引 为字符...

2019-04-15 18:04:29 66 0

原创 被误读的设计模式

目录概要 设计模式的开山之作 对设计模式的误解 关于使用设计模式的3个问题 无处不在的设计模式 如何解释设计模式 设计模式的开山之作 1994年10月21日,有四个哥们儿出版了一本书,名字叫做《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of ...

2019-05-07 16:09:00 54 0

原创 在线数据库关系图设计工具 dbdiagram.io

前段时间,笔者在设计某个系统模块的时候,需要增加十几张表。 为了简单快速地把这十几张表设计并定义出来,我找到了一个可以在线设计数据库关系图(database relationship diagram)且可以导出DDL SQL的工具——dbdiagram.io。 dbdiagram.io是holis...

2019-05-02 21:27:35 6604 0

原创 认识Redis与Redis的数据类型

本文作为Redis的入门教程,旨在让大家对Redis有一个概念性和整体性的认识,并且可以快速上手,为深入Redis打下基础。 文章概要: Redis的介绍 Redis与其他数据库的对比 Redis与其他缓存实现对比 Redis的数据结构类型 Redis命令操作几种数据类型 Spring Data...

2019-05-02 19:26:27 128 0

原创 SpringBoot实现发送电子邮件

目录 电子邮件与Java发送邮件的历史 电子邮件原理 电子邮件服务器 电子邮箱 邮件客户端 邮件传输协议 邮件格式 电子邮件发送和接收流程 电子使用场景 SpringBoot实现发送电子邮件 准备账号 构建项目并配置 实现服务端代码 新建邮件模板 测试发送邮件 总结 相关链接 ...

2019-04-20 23:41:23 4209 2

原创 使用Github搭建Maven私有远程仓库

目录 本地deploy 上传到github 项目配置依赖 参考链接 为了避免重复造轮子,我们可以在项目中引入依赖,使用现有的成熟解决方案。 也许你不满足于“借”轮子,还想自己造轮子,这个时候你就可以把自己的代码放入公共的仓库,供大家使用。 但使用公共的依赖仓库很麻烦,幸好github为我...

2019-04-20 23:39:37 469 0

原创 PostgreSQL Like查询与正则表达式

安装PostgreSQL之后,PostgreSQL会创建一个名为“postgres”的用户,创建一个名为“postgres”的数据库。我们就可以使用这个默认的库做实验。 首先建表并插入数据: CREATE TABLE public.user( ID SERIAL PRIMARY KEY NOT ...

2019-04-20 23:37:43 1561 0

原创 树结构与Java实现

目录 前言 树的概念 概述 术语 实际应用 实现树 TreeNode TreeNodeIterator 测试 总结 相关链接 作者资源 参考资源 前言 提到『树』这种数据结构,相信很多人首先想到的就是『二叉树』。 的确,二叉树作为一种重要的数据结构,它结合了数组和链表的优点...

2019-04-18 18:27:41 1144 0

原创 Redis管道技术的使用

目录 Redis 管道技术 SpringDataRedis 使用管道 Redis 管道的性能测试 使用管道技术的注意事项 代码示例 Redis 管道技术 Redis是一种基于客户端-服务端模型(C/S模型)以及请求/响应协议的TCP服务。 这意味着通常情况下一个请求会遵循以下步骤: ...

2019-04-16 14:07:11 1227 0

原创 Java并发之线程组ThreadGroup介绍

线程组介绍 线程组的构造 ThreadGroup方法介绍 查看线程组信息 终止线程组中的所有线程 总结 Links 作者资源 相关资源 线程组介绍 线程组(ThreadGroup)简单来说就是一个线程集合。线程组的出现是为了更方便地管理线程。 线程组是父子结构的,一个线程组可以集成...

2019-04-03 18:18:10 86 0

原创 Java并发 之 线程池系列 (2) 使用ThreadPoolExecutor构造线程池

Executors的“罪与罚” Executors的源码 让你的JVM OutOfMemoryError 阿里巴巴Java开发手册 主角出场 ThreadPoolExecutor的构造 ThreadPoolExecutor构造参数说明 当一个任务被加入线程池时 ThreadPoolEx...

2019-04-01 21:59:52 73 0

原创 Java并发 之 线程池系列 (1) 让多线程不再坑爹的线程池

背景 线程池的来由 什么是线程池 背景总结 用法 通过Executors创建线程池 Executors及其服务的类 Executors常用的几个方法 一个线程池的例子 任务 池子 测试 说明 总结 Links 文章友链 相关资源 背景 线程池的来由 服务端的程序...

2019-03-31 15:13:09 58 0

原创 notepad++选中多行文本

notepad++ 如何选中多行文本呢? 最近需要上传导入一批数据,但是数据太多了,一次上传完成不了,所以就要用到分批上传。 数据全部都在一个文本文件(txt)里面,这时就想到一次复制出来一部分数据来导入,直到导入完成。 但是问题来了,因为数据太多了,从第1行选择到第10000行,鼠标要拉好久好久...

2019-03-27 18:29:49 529 0

原创 SpringBoot系列之服务端解析客户端国际化请求

文章目录国际化方案实现代码pom.xmlapplication.propertiesLanguageUtil.javaLanguageInterceptor.javaInterceptorConfig.javaLanguageController.java测试使用IDEA的Rest Client发...

2019-03-27 17:53:26 224 0

原创 Java并发编程-Future系列之Future的介绍和基本用法

文章目录About FutureFuture Methods`get()``get()` Sample Example`get(long timeout, TimeUnit unit)``get(long timeout, TimeUnit unit)` Sample Example`isDone...

2019-03-26 17:38:37 1199 0

原创 MySQL 主键自增 Auto Increment用法

AUTO_INCREMENT简介 MySQL的AUTO_INCREMENT属性可以用于在插入新的记录的时候,进行主键自增。 例如执行下面的SQL: CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name...

2019-03-26 16:48:17 443 0

原创 什么是package-info.java

在java项目中创建package以后,可以在package下放一个package-info.java文件。 这个文件有什么作用?如何生成? 三个作用: 为标注在包上Annotation提供便利; 声明友好类和包常量; 比如一个包中有很多的内部访问的类或常量,就可以统一的放到pack...

2019-03-26 16:31:09 1360 0

原创 Maven依赖版本号引发的血案

项目版本升级用了relase版本,但是发布以后,依赖的jar包在编译以后的lib目录还是旧版本。 原因是snapshot版本每次发布都会更新远程和本地仓库的文件,但是release版本会先在本地版本库中检查,如果存在就使用本地版本库的,没有才拉取远程仓库的。同样的,release版本的代码在远程仓...

2019-03-26 16:30:06 407 0

转载 让谁搭车?

如果你在一个雨天开车经过一个公交车站,看到三个人在冒雨等车。 一个是年迈的老太太。 一个是你的救命恩人。 一个是你的梦中情人。 你的车子只有一个人的空位,你会选择让谁搭车? 老太太最需要帮助,如果放任不管不仅你的朋友可能看不起你,连自己也可能愧疚终生;救命恩人拥有对你最大的恩情,你对他的亏欠是最大...

2019-03-24 20:56:35 79 0

原创 自定义git命令实现一步提交代码到仓库

说:把代码放仓库,拢共分几步? 答:4步!add、commit、pull、push。 每次通过git命令执行代码提交,都要像要“把大象装冰箱”一样不厌其烦地四步走, git add * git commit "我也不知道提交了点儿啥" git pull git push 俗话...

2019-03-24 20:55:33 154 0

原创 Java并发编程之Wait和Notify

文章目录Background相关概念什么是多线程线程的状态轮询Sampleswait 和 notify方法介绍示例Links仓库地址参考链接 Background 相关概念 什么是多线程 我们把组成程序(Program)各个部分称为线程(Thread)。也可以说,线程就是程序中轻量级的进程(Pro...

2019-03-24 20:53:52 51 0

原创 Windows操作系统安装MySQL解压版

1、下载MySQL 版本: MySQL Community Server 下载地址: https://dev.mysql.com/ 2、解压安装包 解压下载的安装包,放到电脑的安装目录下 3、配置my.ini文件 解压后,根目录下,有一个my-default.ini文件,这是官方的配...

2019-03-12 18:56:20 40 0

原创 处理Maven本地仓库.lastUpdated文件

处理Maven本地仓库.lastUpdated文件 今天项目启动过程中,抛出了很多奇怪的异常,最终在同事的协助下发现,是因为项目依赖的jar文件没有下好,目录中存在很多类似aaaaa.jar.lastUpdated的文件。 这是因为,项目使用maven管理jar包,很容易因为各种原因(网速慢、断网...

2019-03-12 18:55:18 398 0

原创 MySQL数据库存储引擎简介

MySQL 提供了多个存储引擎——包括处理事务安全表的引擎和处理非事务安全表的引擎,在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。 这些技术中的每一种技术都...

2019-03-12 18:53:47 37 0

原创 解决SimpleDateFormat线程安全问题NumberFormatException: multiple points

SimpleDateFormat是线程不安全的类,一般不要定义为static变量,如果定义为static,必须通过加锁等方式保证线程安全。 例如下面一段代码,启动10个线程,同时使用一个SimpleDateFormat实例去格式化Date。 import java.text.ParseExcept...

2019-03-10 11:55:53 169 0

原创 Java缓存浅析

拿破仑说:胜利属于坚持到最后的人。 而正巧,咱们今天就是要聊一个,关于怎么让系统在狂轰乱炸甚至泰山压顶的情况下,都屹立不倒并坚持到最后的话题——缓存。 Victory belongs to the most persevering. — Napoleon Bonaparte, French m...

2019-03-10 11:02:47 40 0

原创 重试利器之Guava Retrying

在很多业务场景中,为了排除系统中的各种不稳定因素,以及逻辑上的错误,并最大概率保证获得预期的结果,重试机制都是必不可少的。 尤其是调用远程服务,在高并发场景下,很可能因为服务器响应延迟或者网络原因,造成我们得不到想要的结果,或者根本得不到响应。这个时候,一个优雅的重试调用机制,可以让我们更大概率...

2019-02-28 21:39:48 1358 0

原创 SpringBoot系列-前置知识

title: SpringBoot系列-前置知识 date: 2019-02-19 13:08:25 categories: tech java framework Spring SpringBoot tags: [Java,Spring,SpringBoot,Spring5,Maven] ...

2019-02-19 13:27:21 745 0

原创 HTML特殊字符转义

title: HTML特殊字符转义 date: 2019-02-18 21:57:00 categories: tech language HTML tags: [tech,HTML,SpecialCharacters,Java,JavaScript] 问题 如果HTML的DOM元素的属性...

2019-02-18 22:14:53 2447 0

原创 修改IDEA的配置目录

title: 修改IDEA的配置目录 date: 2019-02-18 13:19:00 categories: tech tool IDE IntelliJIDEA tags: [tech,tool,IDE,IntelliJIDEA,IDEA] 在使用IDEA开发工具的过程中,难免会进行...

2019-02-18 13:47:48 1659 0

原创 使用GithubPage做图片库生成引用图片链接

title: 使用GithubPage做图片库生成引用图片链接 date: 2019-02-17 23:00:25 categories: tech website github githubpages tags: [tech,github,gihubpages,picture,img] ...

2019-02-18 13:46:17 871 0

原创 HttpSession 的 invalidate() 方法介绍

By Li Jiangtao At 2018-10-24 15:22:33 Shanghai Catalog Javadoc Experiment Summary Thinking Links Javadoc /** * Invalidates this session then u...

2018-10-24 21:43:25 2233 0

原创 SQL实战:子查询的应用实例

本实例设计到的SQL语法包括: select , delete, distict, not exists, not in, group by, having, min, max

2017-02-28 17:17:36 3139 0

原创 高并发与大数据解决方案概述

随着业务的不断丰富,高并发和海量数据的处理日益成为影响系统性能的重要问题。下面将提供一些针对并发问题和海量数据处理的解决方案。

2017-02-28 11:19:45 3978 0

转载 AJAX原理

1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。它使用: 使用XHTML+CSS来标准化呈现; 使用XML和XSLT进行数据交换及相关操作; 使用XMLH...

2017-02-24 11:20:42 525 0

转载 判断一个正整数是否是2的乘方

**虽然二进制的思维并不符合我们日常的思维习惯,但是由于计算机都是基于二进制的,因此位运算方法,常常能够让我们的算法更加高效简洁。**

2016-11-29 11:10:53 828 0

原创 递归删除树形结构的所有子节点(java和mysql实现)

1.业务场景有如下树形结构: +—0 +—1 +—2 +—4 +—5 +—3 如果如果删除某个父节点,则其子节点,已经子节点的子节点,以此类推,需要全部...

2016-07-14 11:02:13 14601 0

原创 位运算的简介与实例(Mysql)

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。 In digital computer programming, a bitwise operation operates on one or more bit patterns or bina...

2016-07-14 10:41:04 3656 0

提示
确定要删除当前文章?
取消 删除