<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[buglei123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/buglei123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; buglei123]]></copyright><item><title><![CDATA[JVM]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/103211699</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/103211699</guid><author>buglei123</author><pubDate>Fri, 22 Nov 2019 11:02:07 +0800</pubDate><description><![CDATA[1.  java运行过程
看一段示例代码：
public class ADD {

    private int add(int a, int b) {
        return a+b;
    }

    public static void main(String[] args) {
        ADD add = new ADD();
        Syste...]]></description><category></category></item><item><title><![CDATA[Spring Boot 邮件]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425153</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425153</guid><author>buglei123</author><pubDate>Mon, 04 Mar 2019 20:32:18 +0800</pubDate><description><![CDATA[1. 导包
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-mail&lt;/artifactId&gt;
        &lt;/depe...]]></description><category></category></item><item><title><![CDATA[Spring Boot任务]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425152</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425152</guid><author>buglei123</author><pubDate>Mon, 04 Mar 2019 20:28:04 +0800</pubDate><description><![CDATA[1. 异步任务
1.1 开启异步注解功能
@EnableAsync  //开启异步注解功能
加在启动类的上面
1.2 使用
@Service
public class AsyncService {

    //告诉Spring这是一个异步方法
    @Async
    public void hello(){
        System.out.println("处理数据中...]]></description><category></category></item><item><title><![CDATA[Spring Boot ElasticSearch]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425148</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425148</guid><author>buglei123</author><pubDate>Sun, 03 Mar 2019 18:40:11 +0800</pubDate><description><![CDATA[1.结构





image.png

索引：类似于mysql的数据库
类型：类似于mysql的表
文档：类似于mysql的一条记录
属性：类似于mysql的一条记录的某一列
文档：https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
2. Spring Boot使用

两种方式操作ES


...]]></description><category></category></item><item><title><![CDATA[Spring Boot 消息]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425193</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425193</guid><author>buglei123</author><pubDate>Sun, 03 Mar 2019 16:55:29 +0800</pubDate><description><![CDATA[1.  JMS &amp;&amp; AMQP对比





批注 2019-03-03 151511.jpg

2 RabbitMQ





image.png

direct 点对点
fanout、topic、headers 发布订阅





image.png






image.png

2.1 Exchange类型





image.png


消息包含的路由...]]></description><category></category></item><item><title><![CDATA[Spring Boot缓存]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425185</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425185</guid><author>buglei123</author><pubDate>Sun, 03 Mar 2019 14:51:14 +0800</pubDate><description><![CDATA[1 Spring 缓存抽象





image.png


@Cacheable：对请求参数和结果缓存，下次用同一个参数请求，就不再调用方法，直接从缓存中拿出数据
@CacheEvict：清空缓存
@CachePut：更新缓存，保证方法一定会被调用，同时更新缓存中的对应的数据。
@EnableCaching：开启缓存的注解，开启了才可以使用缓存

2 简单使用

在启动类上面加注...]]></description><category></category></item><item><title><![CDATA[Spring boot 接收数组]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425146</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425146</guid><author>buglei123</author><pubDate>Thu, 28 Feb 2019 14:30:47 +0800</pubDate><description><![CDATA[前端ajax传参发请求：
$.ajax({
                    url:'/tjcx/qyzxcx/cwzb/gjcwzb',
                    type:'post',
                    data:{
                        'djxh':djxh,
                     ...]]></description><category></category></item><item><title><![CDATA[sql injection violation, syntax error: ERROR. token : FROM, pos : 125 : select错误]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425144</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425144</guid><author>buglei123</author><pubDate>Wed, 16 Jan 2019 15:39:01 +0800</pubDate><description><![CDATA[错误描述：

java.sql.SQLException: sql injection violation, syntax error: ERROR. token : FROM, pos : 125 : select
        `service_id`,`service_owner`,`service_url`,`service_desc`,`yxbz`,`group_na...]]></description><category></category></item><item><title><![CDATA[输入框回车监听搜索]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425143</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425143</guid><author>buglei123</author><pubDate>Mon, 14 Jan 2019 13:47:05 +0800</pubDate><description><![CDATA[html：
&lt;input class="searchInput_zg-lw" placeholder="输入关键字" v-model="keyword" onkeydown = "enterSearch()"&gt;

js：
function enterSearch(){
    var event = window.event || arguments.callee.ca...]]></description><category></category></item><item><title><![CDATA[git]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425142</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425142</guid><author>buglei123</author><pubDate>Thu, 13 Dec 2018 09:32:15 +0800</pubDate><description><![CDATA[git push origin master:master
git push origin master:develop
git commit -a = git add+gitcommit
命令


git init:在一个文件夹创建git，会有.git文件夹生成。

git add xxx:把xxx文件加到暂存区
git add .把所有文件加到暂存区或者理解把当前工作区的状态同...]]></description><category></category></item><item><title><![CDATA[排序算法]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425140</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425140</guid><author>buglei123</author><pubDate>Wed, 12 Dec 2018 13:02:32 +0800</pubDate><description><![CDATA[1冒泡排序
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        int [] a = new int[]{8,7,5,3,1,0,9,4,2};
        bubbleSort(a);
        for (int i :...]]></description><category></category></item><item><title><![CDATA[数据库优化]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425138</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425138</guid><author>buglei123</author><pubDate>Thu, 06 Dec 2018 19:34:14 +0800</pubDate><description><![CDATA[1. 优化的目的：


避免页面出现访问错误

数据库连接timeout产生5xx错误
慢查询导致页面无法加载（就是查询操作消耗了比较多的时间）
数据库阻塞导致数据无法提交



增加数据库的稳定性

很多的数据库问题都是低效的查询引起的



优化用户体验

提升浏览速度



2. 数据准备
准本一个数据库：https://blog.youkuaiyun.com/forever199113...]]></description><category></category></item><item><title><![CDATA[Redis]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/103041297</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/103041297</guid><author>buglei123</author><pubDate>Wed, 05 Dec 2018 22:10:40 +0800</pubDate><description><![CDATA[1.Redis
1.1 特点

数据模型简单（键值对）
数据库性能较高
数据的弱一致性（比如一个数据在不断的增加，当他显示的是1的时候，真实的数据可能已经变成2了，当他显示是2的时候，真是的数据可能已经变成4了）


减弱了一致性换取了更好的性能


数据都是缓存在内存中，可以周期的把更新的数据写入磁盘或者追加到日志文件中（AOF）

1.2 优缺点
优点：

数据高并发读写
海量...]]></description><category></category></item><item><title><![CDATA[nosql&数据库CAP]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425135</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425135</guid><author>buglei123</author><pubDate>Tue, 04 Dec 2018 13:52:47 +0800</pubDate><description><![CDATA[1.nosql：非关系型数据库
1.1分类

键值存储数据库：特定的键指向特定的数据，如redis、Voldemor、Oracle BDB。
列存储数据库：一个键指向多个列，用来应对分布式存储的海量数据，HBase、Riak。
文档型数据库：MongoDB、CouchDB
图形数据库：比如用来存储人际关系网络，Neo4J、InfoCrid、Infinite Graph

2.CAP...]]></description><category></category></item><item><title><![CDATA[RxAndroid]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425133</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425133</guid><author>buglei123</author><pubDate>Sun, 02 Dec 2018 13:32:42 +0800</pubDate><description><![CDATA[使用
1.简单使用（类似Rx1）

创建被观察者：

Observable&lt;String&gt; observable = Observable.create(new ObservableOnSubscribe&lt;String&gt;() {
            @Override
            public void subscribe(@NonNull ...]]></description><category></category></item><item><title><![CDATA[线程重复执行问题与线程池]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425132</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425132</guid><author>buglei123</author><pubDate>Wed, 21 Nov 2018 16:50:35 +0800</pubDate><description><![CDATA[线程重复运行问题
一个线程的start，只能start一次，再次调用start方法就会抛出异常。
内部实现这个的原理是：
线程对象内部有一个字段，初始值是0








调用一次start方法之后，这个值会被置成其他值（并没有找到在哪里置其他值）
如果重复掉用这个start，会判断这个值如果不是0了就抛出异常，所以导致一个线程只能被start一次。








场景
使用线...]]></description><category></category></item><item><title><![CDATA[线程的状态]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425130</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425130</guid><author>buglei123</author><pubDate>Wed, 21 Nov 2018 16:49:21 +0800</pubDate><description><![CDATA[线程状态：





专业盗图，原图地址：https://blog.youkuaiyun.com/maoyuanming0806/article/details/78019044






专业盗图，原图地址：https://blog.youkuaiyun.com/maoyuanming0806/article/details/78019044


新建：new了以后新建了线程对象
等待：after n...]]></description><category></category></item><item><title><![CDATA[maven]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425127</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425127</guid><author>buglei123</author><pubDate>Fri, 16 Nov 2018 14:59:09 +0800</pubDate><description><![CDATA[maven用过很多次，但是没有详细的总结过
安装。配置略过
1.使用命令行创建maven项目
1.1 准备一个文件夹
mkdir test
1.2 执行创建项目命令
mvn archetype:generate
然后过一会儿会提示创建一个什么类型的项目，可以选择的类型有两千多个，默认的那个是quickstart。






就选quickstart，因为是弄着玩

再然后会提示一...]]></description><category></category></item><item><title><![CDATA[mybaits二：动态代理&复杂查询]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425126</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425126</guid><author>buglei123</author><pubDate>Wed, 14 Nov 2018 18:31:14 +0800</pubDate><description><![CDATA[1.mapper动态代理开发
1.1还是先在mybaits的配置文件中把mapper的xml配置好
sqlMapConfig.xml:
&lt;mapper resource="mybaits/mapper/UserMapper.xml"/&gt;
1.2 UserMapper.xml
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&l...]]></description><category></category></item><item><title><![CDATA[mybaits一：最简单的小demo]]></title><link>https://blog.youkuaiyun.com/buglei123/article/details/102425124</link><guid>https://blog.youkuaiyun.com/buglei123/article/details/102425124</guid><author>buglei123</author><pubDate>Wed, 14 Nov 2018 17:35:41 +0800</pubDate><description><![CDATA[1.准备工作
1.1 准备数据库





数据库

1.2 准备与数据库表对应的pojo类
User：
public class User implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private Intege...]]></description><category></category></item></channel></rss>