<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[atmknight的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/atmknight</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; atmknight]]></copyright><item><title><![CDATA[笔记：Java 集合相关]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/82591583</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/82591583</guid><author>atmknight</author><pubDate>Tue, 11 Sep 2018 09:23:42 +0800</pubDate><description><![CDATA[Collection接口

java Api并没有实现该接口的实现类，但是提供了三个子接口分别是:List,Set,Queue。下面我们对这三个子接口进行分析:

1、List 接口存储一组允许重复，有序（插入顺序）的对象，有下标，插入顺序作为遍历的顺序

2、Set 接口存储一组唯一，无序的对象 没下标 插入的顺序跟遍历的顺序是不一样的

3、Queue  队列 ，一个队列就是一个先入先出（FI...]]></description><category></category></item><item><title><![CDATA[笔记：数据库的事务特性]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/82500153</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/82500153</guid><author>atmknight</author><pubDate>Fri, 07 Sep 2018 17:37:29 +0800</pubDate><description><![CDATA[有段时间没更新了，更新下，学习点基础

1、原子性（atomicity）：一个事物必须是不可分割的一个最小工作单元，整个事物的所有操作要么全部提交成功，要么就全部失败回滚，对于一个事物来说，不能只执行其中的一小部分操作，这个就是事物的原子性。

2、一致性（consistency）：数据库总数从一个一致性的状态转换到另外一个一致性的状态

3、隔离性（isolation）：一个事物从修改到最终的提...]]></description><category></category></item><item><title><![CDATA[SpringBoot  Java  将目标文件压缩成zip文件]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/82021168</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/82021168</guid><author>atmknight</author><pubDate>Fri, 24 Aug 2018 16:42:10 +0800</pubDate><description><![CDATA[最近整理出来的代码，以前好像做过将一堆二维码图片打包成zip的功能，突然看到代码，以前用Struts写的，换springboot框架后，我还是看看能不能整合一下以前那乱糟糟的代码

各种打包方式，文件夹下内容全部打包，文件打包，流打包，打包后以流的形式输出（下载zip）等等

直接上代码


package com.modou.tools.utils;

import java.io.Buffer...]]></description><category></category></item><item><title><![CDATA[FTP  工具包]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/82021011</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/82021011</guid><author>atmknight</author><pubDate>Fri, 24 Aug 2018 16:31:45 +0800</pubDate><description><![CDATA[最近整理以前写过的代码，发现一些有点用的东西，记录一下，省的以后找来找去

ftp的文件包，整理后的代码

首先是pom的包


        &amp;lt;!-- ftp --&amp;gt;
		&amp;lt;dependency&amp;gt;
			&amp;lt;groupId&amp;gt;commons-net&amp;lt;/groupId&amp;gt;
			&amp;lt;artifactId&amp;gt;commons-net&amp;lt;/arti...]]></description><category></category></item><item><title><![CDATA[Java 阿里大于短信功能]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81944470</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81944470</guid><author>atmknight</author><pubDate>Wed, 22 Aug 2018 15:23:06 +0800</pubDate><description><![CDATA[最近做了阿里大于短信的功能，记录一下

创建应用，并记录下应用的KeyId 及 KeySecret





下载sdk



准备完毕，直接上代码

随便弄个  controller 


	@ApiOperation(&quot;阿里大于短信发送&quot;)
	@ApiImplicitParams({
		@ApiImplicitParam(paramType = &quot;query&quot;, name = &quot;mobile...]]></description><category></category></item><item><title><![CDATA[springboot  定时器执行时间超过定时器定时时间会发生什么]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81810985</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81810985</guid><author>atmknight</author><pubDate>Sat, 18 Aug 2018 17:28:52 +0800</pubDate><description><![CDATA[ 定时器执行时间超过定时器定时时间会发生什么，突然发现这个问题，写个方法看看


	/**
	 * 每隔一小时循环退款
	 */
	@Scheduled(cron = &quot;0 0 0/1 * * ?&quot;)
	@Scheduled(cron=&quot;0/1 * *  * * ? &quot;)
	public void test(){
		try {
			
			Thread.currentThread().slee...]]></description><category></category></item><item><title><![CDATA[springboot 自定义配置文件，读取配置文件]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81777706</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81777706</guid><author>atmknight</author><pubDate>Fri, 17 Aug 2018 15:16:08 +0800</pubDate><description><![CDATA[springboot  大大的简便了开发动作，这里记录一种自定义配置，并读取配置信息的方法，不多废话，直接上代码

@ConfigurationProperties(prefix=&quot;my-props&quot;)

这个注解的意思是获取application 配置文件下的所有的以  my-props  开头的配置信息;

以此下面代码为例子



/**
 * 自定义配置文件
 * @author cdj
...]]></description><category></category></item><item><title><![CDATA[springcloud  Zuul丢失Cookie的解决方案]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81737593</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81737593</guid><author>atmknight</author><pubDate>Thu, 16 Aug 2018 10:58:55 +0800</pubDate><description><![CDATA[springcloud  配置智能路由zuul 后 转发请求指定的方法后会导致  cookie 无法获取的问题，主要解决方法是

再application 配置文件中加入  sensitive-headers: 


zuul:
  routes:
    yyxt:
      path: /**
      serviceId: com.modou.dpt
      sensitive-he...]]></description><category></category></item><item><title><![CDATA[springboot  maven 项目打包jar   最后 名称 自定义]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81663600</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81663600</guid><author>atmknight</author><pubDate>Tue, 14 Aug 2018 11:18:57 +0800</pubDate><description><![CDATA[maven 文件打包，输入 ：package -Dmaven.test.skip=true 进行打包，  一般生成的jar 文件 名称是项目名+版本号这样的

如何在pom.xml 中加入finalname  属性，就可以获得稳定的jar 名称


    &amp;lt;build&amp;gt;
		&amp;lt;finalName&amp;gt;pay&amp;lt;/finalName&amp;gt;
		&amp;lt;plugins&amp;gt...]]></description><category></category></item><item><title><![CDATA[Android Studio 3.1.2 新项目报错 AAPT2 error: check logs for details （Gradle 3.1.2）（转）]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81540463</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81540463</guid><author>atmknight</author><pubDate>Thu, 09 Aug 2018 17:12:53 +0800</pubDate><description><![CDATA[最近想看看朋友的安卓项目，因为我没有安卓开发的经历，只能自己摸索，结果在启动项目的时候就遇到了问题，启动报错，

AAPT2 error: check logs for details，这个问题困扰了我很久，问朋友也不能很好的解决，网上找的很多都没效果，直到我看到了这篇文章：https://blog.youkuaiyun.com/u011618035/article/details/80574645

很详细...]]></description><category></category></item><item><title><![CDATA[springboot  访问静态资源设置]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81536627</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81536627</guid><author>atmknight</author><pubDate>Thu, 09 Aug 2018 14:51:28 +0800</pubDate><description><![CDATA[今天一个人问我为什么项目下的图片不能访问，帮他解决问题后我决定记录下来，springboot 的程序的静态资源访问需要重写addResourceHandlers方法，直接上代码：


import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import...]]></description><category></category></item><item><title><![CDATA[微信公众号模板推送]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81237318</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81237318</guid><author>atmknight</author><pubDate>Tue, 07 Aug 2018 17:06:52 +0800</pubDate><description><![CDATA[公众号推送消息是十分重要又基础的功能，这里主要记录一下微信公众号推送模板开发的相关流程和代码。

首先：要申请模板消息功能，选择主营行业和副营行业，并输入申请理由（相应的例子网上一大堆，这里不赘述了）；

申请完了之后就感觉你选择的行业去模板库里面找类似需要的模板类型，模板库其实还是蛮全的，实在没有找到也可以自己申请新的模板，不过每个月有上限；

先上代码：

先选择一个模板（这里放一个简单的模板...]]></description><category></category></item><item><title><![CDATA[springboot 配置redis]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81477802</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81477802</guid><author>atmknight</author><pubDate>Tue, 07 Aug 2018 11:19:52 +0800</pubDate><description><![CDATA[记录一些基础但必须的配置---redis

springboot 中的redis 配置也是十分简单的，直接上代码：

首先，引入jar包文件：


        &amp;lt;!-- redis --&amp;gt;
		&amp;lt;dependency&amp;gt;
			&amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
			&amp;lt;artifactId...]]></description><category></category></item><item><title><![CDATA[微信公众号事件推送（点击推送图文）]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81387894</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81387894</guid><author>atmknight</author><pubDate>Fri, 03 Aug 2018 16:46:54 +0800</pubDate><description><![CDATA[最近做微信公众号的功能，按钮菜单中有 type 为 click 的按钮，其功能是 若你配置好了服务器配置，设置后回调的url, 点击后微信会将该事件推送到配置好的地址，后台接受数据然后进行相应的处理。网上看了很多例子，学习了很多，我发现最好的还是这位博主写的文章，分享给大家：https://blog.youkuaiyun.com/tuposky/article/details/40589319

然后开始主题...]]></description><category></category></item><item><title><![CDATA[支付不重复订单号生成]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81296930</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81296930</guid><author>atmknight</author><pubDate>Tue, 31 Jul 2018 13:03:12 +0800</pubDate><description><![CDATA[最近的项目中支付的订单号是使用附加项目中的工具做的，是一种带数据库自增形式的订单号，开始测试的时候没有任何问题，但是再高并发的实际应用中还是有不小的问题，只怪自己考虑太少，必须在高并发模式下保证订单号的唯一，我也参考了很多的案例，网上有个网友的回复很是精辟：


如果没有并发，订单号只在一个线程内产生，那么由于程序是顺序执行的，不同订单的生成时间一定不同，因此用时间就可以区分各个订单。

如果存在...]]></description><category></category></item><item><title><![CDATA[支付宝当面付功能]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81240677</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81240677</guid><author>atmknight</author><pubDate>Fri, 27 Jul 2018 17:19:54 +0800</pubDate><description><![CDATA[刚开始做支付宝支付相关功能的时候什么都不了解，只想着去找别人已有的代码，结果找到了个很厉害的，代码都封装到jar包里面的，也没源码，最近整理代码发现这样很不方便自己维护，毕竟代码不是自己写的，出什么问题也不好快速改正，重新看了看支付宝线下支付的文档，哎呀，支付宝支付对程序员开发还是很友好的，Java  相关的方法都封装好了，就花了一点点时间，轻松写出线下支付当面付的代码，直接上代码：

官方文档地...]]></description><category></category></item><item><title><![CDATA[微信公众号创建菜单]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81220735</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81220735</guid><author>atmknight</author><pubDate>Thu, 26 Jul 2018 16:30:38 +0800</pubDate><description><![CDATA[第一次做微信公众号的时候，了解不是很透彻，前端通过自定义菜单手动配置的，菜单不是通过后台生成的，后面想要获取事件信息的时候出现了点问题，所以我重新研究了下相关的文档，记录下来备忘。

其实生成菜单非常简单，直接上代码：

官方文档地址：https://mp.weixin.qq.com/wiki?t=resource/res_main&amp;amp;id=mp1421141013

创建几个实体类，用来生...]]></description><category></category></item><item><title><![CDATA[springboot 微信支付  APP支付]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81178752</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81178752</guid><author>atmknight</author><pubDate>Tue, 24 Jul 2018 10:40:03 +0800</pubDate><description><![CDATA[相比于支付宝的官方文档，我认为微信的官方文档写的就“差”多了；

其实不是微信的写的差，而是支付宝的支付代码封装的比较好，而且一下细节的东西你不仔细看很容易出错，虽然文档里面都有，但是还是有很多的坑的。每次出错总是毫无头绪，正常的错误还好，会提示到，但是签名错误，验签失败什么的，就......，不过其实认真审视流程，比对官方文档，还是能找出问题的，但就是很不爽.......。

好了，开始讲支付相...]]></description><category></category></item><item><title><![CDATA[swagger常用注解]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81178136</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81178136</guid><author>atmknight</author><pubDate>Tue, 24 Jul 2018 09:03:08 +0800</pubDate><description><![CDATA[原文地址：https://blog.youkuaiyun.com/u013291972/article/details/72773011

一、swagger常用注解

1、与模型相关的注解

两个注解：

@ApiModel：用在模型类上，对模型类做注释；
	@ApiModelProperty：用在属性上，对属性做注释
2、与接口相关的注解

六个注解：

@Api：用在controller上，对contr...]]></description><category></category></item><item><title><![CDATA[Java  支付宝支付 Alipay]]></title><link>https://blog.youkuaiyun.com/atmknight/article/details/81164558</link><guid>https://blog.youkuaiyun.com/atmknight/article/details/81164558</guid><author>atmknight</author><pubDate>Mon, 23 Jul 2018 13:40:39 +0800</pubDate><description><![CDATA[相关官方文档位置:https://docs.open.alipay.com/api_1

阿里的文档还是比较清晰明了的，Java部分的代码更是做了非常棒的封装，引用jar包中的方法，支付宝的流程都类似，可以迅速的写出相应的支付代码;

以alipay.trade.app.pay(统一收单交易支付接口)  为例子：



我们可以看到这些公共请求的参数，其中必填参数是必填的，不能为空，也有相应的格式...]]></description><category></category></item></channel></rss>