<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dobecoder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dobecoder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dobecoder]]></copyright><item><title><![CDATA[TraceEagle使用教程]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/168889299</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/168889299</guid><author>dobecoder</author><pubDate>Sat, 24 Oct 2026 02:35:46 +0800</pubDate><description><![CDATA[遇到非 HTTP、非 JSON/protobuf 的私有或二进制协议时，通用视图只能摊开原始字节。TraceEagle 的自定义解码器用一个函数教它如何“切消息”。]]></description><category></category></item><item><title><![CDATA[消息推送和短信发送的实现方案]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401049</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401049</guid><author>dobecoder</author><pubDate>Thu, 20 Aug 2020 16:17:25 +0800</pubDate><description><![CDATA[本文主要是将目前的消息模块做一个总结，分为短信发送、APP的消息推送两个部分。短信发送采用的是第三方的API（阿里大于短信平台），APP的消息推送采用的是极光的消息推送平台。只是介绍一个大概的流程，细节方面相对少一些。






消息发送流程.png


有消息发送需求后，直接实例化msg或者sms，通过调用封装好的方法分别放到appMsgQueue...]]></description><category></category></item><item><title><![CDATA[Java 8 Stream详解]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/83755067</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/83755067</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 19:24:48 +0800</pubDate><description><![CDATA[概述
继Java 8系列之Lambda表达式之后，我们来了解Stream。Stream 是用函数式编程方式在集合类上进行复杂操作的工具，其集成了Java 8中的众多新特性之一的聚合操作，开发者可以更容易地使用Lambda表达式，并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。
聚合操作
为了学习聚合的使用，在这里，先定义一个数据类：
public class Student {
    i...]]></description><category></category></item><item><title><![CDATA[Optional避免空指针的用法]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/83752512</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/83752512</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 16:57:37 +0800</pubDate><description><![CDATA[Optional避免空指针的用法
从一个简单的用例开始。在 Java 8 之前，任何访问对象方法或属性的调用都可能导致 NullPointerException：
String isocode = user.getAddress().getCountry().getIsocode().toUpperCase();

在这个小示例中，如果我们需要确保不触发异常，就得在访问每一个值之前对其进行明确地检...]]></description><category></category></item><item><title><![CDATA[SpringContextHolder使用报错及@Lazy使用]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/83752435</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/83752435</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 16:54:48 +0800</pubDate><description><![CDATA[
今天在使用SpringContextHolder来获取一个bean的时候出现错误，报错如下：

java.lang.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.
	at org.apache.commons.lang3.Validate.validSt...]]></description><category></category></item><item><title><![CDATA[Redis保护模式配置引起的问题]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/83751918</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/83751918</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 16:33:32 +0800</pubDate><description><![CDATA[在新服务器上Jedis jedis = pool.getResource()

报错：


redis.clients.jedis.exceptions.JedisDataException:
DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specif...]]></description><category></category></item><item><title><![CDATA[ArrayList源码解析]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/81140095</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/81140095</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 16:29:51 +0800</pubDate><description><![CDATA[

package java.util;

import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.UnaryOperator;

public class ArrayList&amp;lt;E&amp;gt; extends AbstractList&amp;lt;E&amp;gt;
 ...]]></description><category></category></item><item><title><![CDATA[消息推送和短信发送的实现方案]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/83751771</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/83751771</guid><author>dobecoder</author><pubDate>Mon, 05 Nov 2018 16:26:39 +0800</pubDate><description><![CDATA[消息推送和短信发送的实现方案


本文主要是将目前的消息模块做一个总结，分为短信发送、APP的消息推送两个部分。短信发送采用的是第三方的API（阿里大于短信平台），APP的消息推送采用的是极光的消息推送平台。只是介绍一个大概的流程，细节方面相对少一些。

消息发送流程：


有消息发送需求后，直接实例化msg或者sms，通过调用封装好的方法分别放到appMsgQueue和smsQueue。

  ...]]></description><category></category></item><item><title><![CDATA[Java设计模式]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88399686</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88399686</guid><author>dobecoder</author><pubDate>Wed, 08 Aug 2018 21:51:00 +0800</pubDate><description><![CDATA[设计模式的分类
总体来说设计模式分为三大类：

创建型模式，共五种：工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式，共七种：适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式，共十一种：策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者...]]></description><category></category></item><item><title><![CDATA[SQL中varchar类型在where中注意事项]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/81512111</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/81512111</guid><author>dobecoder</author><pubDate>Wed, 08 Aug 2018 17:26:48 +0800</pubDate><description><![CDATA[ 起因：
	事情是这样的，今天在写sql的时候，table中有一个字段是platform，本来的意思是：0安卓，1苹果。但是由于是测试环境，我在仿造数据的时候将一些数据的platform写成了IOS。
	SQL：
	
select * from table where platform=1


	这时报了个没有这个字段的错误。改成如下sql后没有异常：

	
select * from table...]]></description><category></category></item><item><title><![CDATA[BigDecimal的divide方法报错]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/81511908</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/81511908</guid><author>dobecoder</author><pubDate>Wed, 08 Aug 2018 17:20:46 +0800</pubDate><description><![CDATA[报错：
	
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

	
	报错语句:
	
a.divide(b));

	
	原因：JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传递第二个参数，定义精确到小数点后几位...]]></description><category></category></item><item><title><![CDATA[对接阿里大于短信平台报错]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/81511625</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/81511625</guid><author>dobecoder</author><pubDate>Wed, 08 Aug 2018 17:05:20 +0800</pubDate><description><![CDATA[阿里大于api地址：https://help.aliyun.com/document_detail/55284.html?spm=a2c4g.11186623.6.557.oWGgY5
	 maven依赖：

&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;com.aliyun&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;aliyun-java-...]]></description><category></category></item><item><title><![CDATA[BigDecimal的divide方法报错]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88400150</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88400150</guid><author>dobecoder</author><pubDate>Fri, 03 Aug 2018 15:10:00 +0800</pubDate><description><![CDATA[报错：

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.


报错语句:

a.divide(b));


原因：

JAVA中如果用BigDecimal做除法的时候一定要在divide方法中传...]]></description><category></category></item><item><title><![CDATA[Java 8 日期和时间的API]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401050</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401050</guid><author>dobecoder</author><pubDate>Tue, 31 Jul 2018 22:10:00 +0800</pubDate><description><![CDATA[java.time包：
这是新的Java日期/时间API的基础包，所有的主要基础类都是这个包的一部分，如：LocalDate, LocalTime, LocalDateTime, Instant, Period, Duration等等。所有这些类都是不可变的和线程安全的，在绝大多数情况下，这些类能够有效地处理一些公共的需求。

Instant——它代表的是...]]></description><category></category></item><item><title><![CDATA[Quartz实现跑批]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401619</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401619</guid><author>dobecoder</author><pubDate>Mon, 30 Jul 2018 22:27:00 +0800</pubDate><description><![CDATA[Quartz介绍
1.特点
(1)强大的调度功能：作为spring默认的调度框架，很容易与spring集成，实现灵活可配置的调度功能；还提供了调度运行环境的持久化机制，可以保存并恢复调度现场，
即使系统因故障关闭，任务调度现场数据并不会丢失。
(2)灵活的应用方式：允许开发者灵活的定义触发器的调度时间表并可以为触发器和任务进行关联映射。
(3)分布式和集群...]]></description><category></category></item><item><title><![CDATA[SpringContextHolder使用报错]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401612</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401612</guid><author>dobecoder</author><pubDate>Wed, 25 Jul 2018 22:53:00 +0800</pubDate><description><![CDATA[今天在使用SpringContextHolder来获取一个bean的时候出现错误，报错如下：

java.lang.IllegalStateException: applicaitonContext属性未注入, 请在applicationContext.xml中定义SpringContextHolder.
    at org.apache.common...]]></description><category></category></item><item><title><![CDATA[SQL中varchar类型在where中注意事项]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88402312</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88402312</guid><author>dobecoder</author><pubDate>Wed, 25 Jul 2018 22:52:00 +0800</pubDate><description><![CDATA[事情是这样的，今天在写sql的时候，table中有一个字段是platform，本来的意思是：0安卓，1苹果。
但是由于是测试环境，我在仿造数据的时候将一些数据的platform写成了IOS。

//sql
select * from table where platform=1

这时报了个没有这个字段的错误。改成如下sql后没有异常：
//sql
se...]]></description><category></category></item><item><title><![CDATA[Java 8 Stream方法]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401850</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401850</guid><author>dobecoder</author><pubDate>Tue, 24 Jul 2018 22:22:00 +0800</pubDate><description><![CDATA[concat
concat方法将两个Stream连接在一起，合成一个Stream。若两个输入的Stream都时排序的，则新Stream也是排序的；若输入的Stream中任何一个是并行的，则新的Stream也是并行的；若关闭新的Stream时，原两个输入的Stream都将执行关闭处理。
示例：
Stream.concat(Stream.of(1, 2, 3)...]]></description><category></category></item><item><title><![CDATA[Java 8 Stream详解]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88402287</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88402287</guid><author>dobecoder</author><pubDate>Mon, 23 Jul 2018 21:53:00 +0800</pubDate><description><![CDATA[概述
继Java 8系列之Lambda表达式之后，我们来了解Stream。Stream 是用函数式编程方式在集合类上进行复杂操作的工具，其集成了Java 8中的众多新特性之一的聚合操作，开发者可以更容易地使用Lambda表达式，并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。
聚合操作
为了学习聚合的使用，在这里，先定义一个数据类：
public ...]]></description><category></category></item><item><title><![CDATA[ArrayList源码解析]]></title><link>https://blog.youkuaiyun.com/dobecoder/article/details/88401611</link><guid>https://blog.youkuaiyun.com/dobecoder/article/details/88401611</guid><author>dobecoder</author><pubDate>Fri, 20 Jul 2018 23:49:00 +0800</pubDate><description><![CDATA[package java.util;

import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.UnaryOperator;

public class ArrayList&amp;lt;E&amp;gt; extends Abst...]]></description><category></category></item></channel></rss>