<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[switch513的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/switch513</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; switch513]]></copyright><item><title><![CDATA[项目中常用的19条MySQL优化]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/78647598</link><guid>https://blog.youkuaiyun.com/switch513/article/details/78647598</guid><author>switch513</author><pubDate>Mon, 27 Nov 2017 18:15:00 +0800</pubDate><description><![CDATA[声明一下：下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的

一、EXPLAIN

做MySQL优化，我们要善用 EXPLAIN 查看SQL执行计划。

下面来个简单的示例，标注(1,2,3,4,5)我们要重点关注的数据



type列，连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列，使用到的索引名。如果没有选择索引，值是]]></description><category></category></item><item><title><![CDATA[理解OAuth 2.0]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/78392162</link><guid>https://blog.youkuaiyun.com/switch513/article/details/78392162</guid><author>switch513</author><pubDate>Mon, 30 Oct 2017 13:38:51 +0800</pubDate><description><![CDATA[OAuth是一个关于授权（authorization）的开放网络标准，在全世界得到广泛应用，目前的版本是2.0版。

本文对OAuth 2.0的设计思路和运行流程，做一个简明通俗的解释，主要参考材料为RFC 6749。



一、应用场景

为了理解OAuth的适用场合，让我举一个假设的例子。

有一个"云冲印"的网站，可以将用户储存在Google的照片，冲印出来。用户为了使用]]></description><category></category></item><item><title><![CDATA[Java生成和操作Excel文件]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/78026308</link><guid>https://blog.youkuaiyun.com/switch513/article/details/78026308</guid><author>switch513</author><pubDate>Tue, 19 Sep 2017 09:28:43 +0800</pubDate><description><![CDATA[JAVA EXCEL API:是一开放源码项目，通过它Java开发人员可以读取Excel文件的内容、创建新的Excel文件、更新已经存在的Excel文件。使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表。因为它是使用Java编写的，所以我们在Web应用中可以通过JSP、Servlet来调用API实现对Excel数据表的访问。

下载：

官方网站 http]]></description><category></category></item><item><title><![CDATA[Linux命令]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/77483699</link><guid>https://blog.youkuaiyun.com/switch513/article/details/77483699</guid><author>switch513</author><pubDate>Tue, 22 Aug 2017 18:25:42 +0800</pubDate><description><![CDATA[1. tar

创建一个新的tar文件

$ tar cvf archive_name.tar dirname/



解压tar文件

$ tar xvf archive_name.tar



查看tar文件

$ tar tvf archive_name.tar



更多示例：The Ultimate Tar
 Command Tutorial with]]></description><category></category></item><item><title><![CDATA[解决docker无法联网]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/77366247</link><guid>https://blog.youkuaiyun.com/switch513/article/details/77366247</guid><author>switch513</author><pubDate>Fri, 18 Aug 2017 10:35:23 +0800</pubDate><description><![CDATA[编辑虚拟机文件：vim /etc/sysctl.conf
增加：net.ipv4.ip_forward=1

重启服务：systemctl restart network
查看属性是否修改成功：sysctl net.ipv4.ip_forward]]></description><category></category></item><item><title><![CDATA[Spring(AbstractRoutingDataSource)实现动态数据源切换--转载]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/73770280</link><guid>https://blog.youkuaiyun.com/switch513/article/details/73770280</guid><author>switch513</author><pubDate>Tue, 27 Jun 2017 09:13:15 +0800</pubDate><description><![CDATA[原始出处：http://linhongyu.blog.51cto.com/6373370/1615895




一、前言

    近期一项目A需实现数据同步到另一项目B数据库中，在不改变B项目的情况下，只好选择项目A中切换数据源，直接把数据写入项目B的数据库中。这种需求，在数据同步与定时任务中经常需要。

    那么问题来了，该如何解决多数据源问题呢？不光是要配置多个数据源]]></description><category></category></item><item><title><![CDATA[spring动态切换数据库支持事务]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/73770274</link><guid>https://blog.youkuaiyun.com/switch513/article/details/73770274</guid><author>switch513</author><pubDate>Tue, 27 Jun 2017 09:12:32 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/y_wave/article/details/52469795




在项目中有mysql的多个库，在代码中同一个方法可能会操作不同的表。在网上学习了各种方法。大概总结了一下。

1.mycat、cobar等分布式数据库中间件。

可以很好的支持，但是太重量级了，对我们项目有点大材小用。

2.spring的AbstractRout]]></description><category></category></item><item><title><![CDATA[mysql乐观锁总结和实践]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/72911650</link><guid>https://blog.youkuaiyun.com/switch513/article/details/72911650</guid><author>switch513</author><pubDate>Thu, 08 Jun 2017 11:28:38 +0800</pubDate><description><![CDATA[上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁，但是悲观锁并不是适用于任何场景，它也有它存在的一些不足，因为悲观锁大多数情况下依靠数据库的锁机制实现，以保证操作最大程度的独占性。如果加锁的时间过长，其他用户长时间无法访问，影响了程序的并发访问性，同时这样对数据库性能开销影响也很大，特别是对长事务而言，这样的开销往往无法承受。所以与悲观锁相对的，我们有了乐观锁，具体参见下面介绍：
]]></description><category></category></item><item><title><![CDATA[mysql悲观锁总结和实践]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/72911636</link><guid>https://blog.youkuaiyun.com/switch513/article/details/72911636</guid><author>switch513</author><pubDate>Thu, 08 Jun 2017 11:28:03 +0800</pubDate><description><![CDATA[悲观锁介绍（百科）：
悲观锁，正如其名，它指的是对数据被外界（包括本系统当前的其他事务，以及来自外部系统的事务处理）修改持保守态度，因此，在整个数据处理过程中，将数据处于锁定状态。悲观锁的实现，往往依靠数据库提供的锁机制（也只有数据库层提供的锁机制才能真正保证数据访问的排他性，否则，即使在本系统中实现了加锁机制，也无法保证外部系统不会修改数据）。
 
使用场景举例：以MySQL InnoDB]]></description><category></category></item><item><title><![CDATA[40个Java多线程问题总结]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/72171682</link><guid>https://blog.youkuaiyun.com/switch513/article/details/72171682</guid><author>switch513</author><pubDate>Mon, 15 May 2017 16:33:07 +0800</pubDate><description><![CDATA[前言

个人认为，学习，内容越多、越杂的知识，越需要进行深刻的总结，这样才能记忆深刻，将知识变成自己的。这篇文章主要是对多线程的问题进行总结的，因此罗列了40个多线程的问题。
这些多线程的问题，有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过，但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍，不会去看网上的答案，因]]></description><category></category></item><item><title><![CDATA[Java常用的八种排序算法与代码实现]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/72123218</link><guid>https://blog.youkuaiyun.com/switch513/article/details/72123218</guid><author>switch513</author><pubDate>Mon, 15 May 2017 10:34:13 +0800</pubDate><description><![CDATA[1.直接插入排序


经常碰到这样一类排序问题：把新的数据插入到已经排好的数据列中。


将第一个数和第二个数排序，然后构成一个有序序列将第三个数插入进去，构成一个新的有序序列。对第四个数、第五个数……直到最后一个数，重复第二步。





如何写写成代码：

首先设定插入次数，即循环次数，for(int i=1;i设定插入数和得到已经排好序列的最后一个数的位数。ins]]></description><category></category></item><item><title><![CDATA[自定义数据绑定---HandlerMethodArgumentResolver]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/71711505</link><guid>https://blog.youkuaiyun.com/switch513/article/details/71711505</guid><author>switch513</author><pubDate>Fri, 12 May 2017 10:50:11 +0800</pubDate><description><![CDATA[介绍

      前面几节我们介绍了spring MVC的几种常见的数据绑定的方法，可以灵活地获取用户请求中的参数，例如@PathVariable，@ModelAttribute，@RequestParam等这些数据绑定注解，有了这些注解，我们可以很方便的去获取参数，但是偶尔我们需要自定义的去进行数据绑定，Spring一直遵循开闭原则，可以让使用者自定义去做自己的事情，今天我们一起浅析一下H]]></description><category></category></item><item><title><![CDATA[35 个 Java 代码性能优化总结]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/71600426</link><guid>https://blog.youkuaiyun.com/switch513/article/details/71600426</guid><author>switch513</author><pubDate>Thu, 11 May 2017 09:05:40 +0800</pubDate><description><![CDATA[前言

代码优化，一个很重要的课题。可能有些人觉得没用，一些细小的地方有什么好修改的，改与不改对于代码的运行效率有什么影响呢？这个问题我是这么考虑的，就像大海里面的鲸鱼一样，它吃一条小虾米有用吗？没用，但是，吃的小虾米一多之后，鲸鱼就被喂饱了。代码优化也是一样，如果项目着眼于尽快无BUG上线，那么此时可以抓大放小，代码的细节可以不精打细磨；但是如果有足够的时间开发、维护代码，这时候就必须考虑每]]></description><category></category></item><item><title><![CDATA[集中式日志系统 ELK 协议栈详解]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/71411606</link><guid>https://blog.youkuaiyun.com/switch513/article/details/71411606</guid><author>switch513</author><pubDate>Mon, 08 May 2017 14:27:32 +0800</pubDate><description><![CDATA[https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/




简介


在我们日常生活中，我们经常需要回顾以前发生的一些事情；或者，当出现了一些问题的时候，可以从某些地方去查找原因，寻找发生问题的痕迹。无可避免需要用到文字的、图像的等等不同形式的记录。用计算机的术语表达，就是 LOG，或日志。

日志，对于任何系]]></description><category></category></item><item><title><![CDATA[Mybatis Generator（简称MBG）的最完整配置文件]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/71080889</link><guid>https://blog.youkuaiyun.com/switch513/article/details/71080889</guid><author>switch513</author><pubDate>Tue, 02 May 2017 14:21:02 +0800</pubDate><description><![CDATA[xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
]]></description><category></category></item><item><title><![CDATA[Java后端2017书单推荐]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/70224194</link><guid>https://blog.youkuaiyun.com/switch513/article/details/70224194</guid><author>switch513</author><pubDate>Tue, 18 Apr 2017 08:47:06 +0800</pubDate><description><![CDATA[学生、职场新人

《Java核心技术·卷1
 基础知识（原书第10版）》



新手入门这本就够了，这一卷讲的非常基础，又易懂，比《Java编程思想》更容易啃下来。建议人手一本。已经到第10版了，覆盖最新技术，平时经常翻阅。

个人提升

《Java8
 实战》



Java8的新特性讲得最全最仔细的。

《Effective
 Java》



E]]></description><category></category></item><item><title><![CDATA[智慧的提问]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/68482834</link><guid>https://blog.youkuaiyun.com/switch513/article/details/68482834</guid><author>switch513</author><pubDate>Thu, 30 Mar 2017 08:53:41 +0800</pubDate><description><![CDATA[原文地址：http://wiki.woodpecker.org.cn/moin/AskForHelp/

How To Ask Questions the Smart Way
-- 王刚  版本《提问的智慧》

2001 by Eric S. Raymond
中文版Copyleft 译者 D.H.Grand

以及 CPyUG 典章:回答的智慧

强烈: 建议使用技巧: 如何有]]></description><category></category></item><item><title><![CDATA[StringUtils详解]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/60764255</link><guid>https://blog.youkuaiyun.com/switch513/article/details/60764255</guid><author>switch513</author><pubDate>Tue, 07 Mar 2017 14:42:11 +0800</pubDate><description><![CDATA[StringUtils是工作中使用最频繁的一个工具类，提供了大量丰富的字符串操作方法，下面是所有方法的一个蓝图：



StringUtils方法概览


判空函数

1）StringUtils.isEmpty(String str)

2）StringUtils.isNotEmpty(String str)

3）StringUtils.isBlank(String s]]></description><category></category></item><item><title><![CDATA[Intellij IDEA 快捷键（windows）]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/56276360</link><guid>https://blog.youkuaiyun.com/switch513/article/details/56276360</guid><author>switch513</author><pubDate>Tue, 21 Feb 2017 09:43:58 +0800</pubDate><description><![CDATA[【常规】

Ctrl+Shift + Enter，语句完成“！”，否定完成，输入表达式时按 “！”键Ctrl+E，最近的文件Ctrl+Shift+E，最近更改的文件Shift+Click，可以关闭文件Ctrl+[ OR ]，可以跑到大括号的开头与结尾Ctrl+F12，可以显示当前文件的结构Ctrl+F7，可以查询当前元素在当前文件中的引用，然后按 F3 可以选择Ctrl+N，可以快速打开类Ct]]></description><category></category></item><item><title><![CDATA[敏捷软件开发宣言]]></title><link>https://blog.youkuaiyun.com/switch513/article/details/55045911</link><guid>https://blog.youkuaiyun.com/switch513/article/details/55045911</guid><author>switch513</author><pubDate>Mon, 13 Feb 2017 10:57:29 +0800</pubDate><description><![CDATA[我们一直在实践中探寻更好的软件开发方法，
身体力行的同时也帮助他人。由此我们建立了如下价值观：

个体和互动 高于 流程和工具
工作的软件 高于 详尽的文档
客户合作 高于 合同谈判
响应变化 高于 遵循计划

也就是说，尽管右项有其价值，
我们更重视左项的价值。]]></description><category></category></item></channel></rss>