<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[asd657321的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/asd657321</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; asd657321]]></copyright><item><title><![CDATA[spring boot 文件上传限制]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/116643671</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/116643671</guid><author>asd657321</author><pubDate>Tue, 11 May 2021 10:29:38 +0800</pubDate><description><![CDATA[springboot1.5 XX

spring


 http:
  multipart:
    maxFileSize: 50Mb
    maxRequestSize: 500Mb

springboot2.XX

spring：
 servlet:

   multipart: max-file-size: 1KB

   max-request-size: 50KB



nginx body 设置

  client_header_buffer_size 4k;
...]]></description><category></category></item><item><title><![CDATA[服务器自启动脚本整理ubuntu 18.04]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/116200507</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/116200507</guid><author>asd657321</author><pubDate>Tue, 27 Apr 2021 14:31:52 +0800</pubDate><description><![CDATA[#开机设置

1.ubuntu 18.04 使用 systemd 管理系统（16.04 initd），systemd 默认读取 /etc/systemd/system目录下的配置文件，并链接到 /lib/systemd/system/目录下的脚本文件；

2. 修改启动脚本，rc.local.service是我们所需要的自启动脚本
cd /lib/systemd/system
ls -lh
sudo vim rc.local.service

#添加 Install
[Install]
WantedBy=m]]></description><category></category></item><item><title><![CDATA[服务器配置优化]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/116200470</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/116200470</guid><author>asd657321</author><pubDate>Tue, 27 Apr 2021 14:30:18 +0800</pubDate><description><![CDATA[/etc/sysctl.conf文件替换为下面的配置，然后 执行 sysctl -p



服务器参数设置


vm.swappiness = 0
kernel.sysrq = 1

net.ipv4.neigh.default.gc_stale_time = 120

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4...]]></description><category></category></item><item><title><![CDATA[spring 中用到了哪些设计模式]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114413629</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114413629</guid><author>asd657321</author><pubDate>Fri, 05 Mar 2021 20:57:24 +0800</pubDate><description><![CDATA[1.模版方法模式：BeanFactory就是简单工厂模式的体现，用来创建对象的实例

2.单例模式：Bean默认单例模式

3.代理模式：SpringAop 用到了动态代理和CGLIB字节码生成技术

4.定义对象键一种一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都会得到通知被制动更新，如Spring中listener的实现--ApplicationListener
...]]></description><category></category></item><item><title><![CDATA[缓存击穿/穿透/缓存雪崩]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114388268</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114388268</guid><author>asd657321</author><pubDate>Fri, 05 Mar 2021 11:47:25 +0800</pubDate><description><![CDATA[1.缓存穿透：指查询数据 在缓存 和数据库中 都不存在； 有人用不存在的减值恶意攻击

        解决方案：1）. 在缓存查询/数据库查询之前 尽可能的进行规则校验

                 2）.首次缓存/数据库中都查不到数据时缓存一个空的对象

2.缓存 雪崩：大量缓存数据同时过期，导致外部访问同时落在了数据库

        解决方案：缓存过期时间加入随机 值，尽量时缓存过期时间不要太集中

3.缓存击穿：部分过...]]></description><category></category></item><item><title><![CDATA[ABtesting 服务器搭建]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114371946</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114371946</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 16:42:11 +0800</pubDate><description><![CDATA[## 一、功能介绍
1. 基于openresty的灰度发布
2. 服务平滑切换

### 二、目录介绍
1. admin: 灰度策略管理源码, 无需修改
2. diversion: 灰度流量分发源码, 无需修改
3. doc: ABTestingGateWay自带的文档
4. lib/resty &amp; lib/lua-resty-core: openresty的lib库，无需修改
5. lib/abtesting/adapter: 灰度策略应用源码, 无需修改
6. lib/diversion...]]></description><category></category></item><item><title><![CDATA[苹果支付服务器校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114371170</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114371170</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 16:20:32 +0800</pubDate><description><![CDATA[苹果支付回调核心是校验凭证的有效性，同时防止利用低价格商品凭证校验高价格商品

//一个凭证下可能会存在多个订单凭证，所以最好进行自动补单。利用第三方订单幂等原则，生成唯一订单id

我们实现机制是客户端下单支付，完成之后 客户端向服务器发起回调，服务器进行相应的订单回调（同时检测，实现补单功能）

//回调函数


private Map&lt;String, Object&gt; doCallBack(ApplePurchaseBO purchaseBO) {
    // 检查服务器是否已经保存 并获]]></description><category></category></item><item><title><![CDATA[苹果第三方登陆校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114369308</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114369308</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 15:20:37 +0800</pubDate><description><![CDATA[@Value("${app.apple.login.key-id}")
private String keyId;
@Value("${app.apple.login.private-key}")
private String privateKey;
@Value("${app.apple.login.team-id}")
private String teamId;
@Value("${app.apple.login.client-id}")
private String clientId;

priv.]]></description><category></category></item><item><title><![CDATA[微信第三方登陆校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114369213</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114369213</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 15:16:41 +0800</pubDate><description><![CDATA[public static WechatAccessToken accessToken(String code, String appId, String appToken){
    String url = String.format("https://api.weixin.qq.com/sns/oauth2/access_token?"+
            "appid=%s&amp;secret=%s&amp;code=%s&amp;grant_type=authorization_code.]]></description><category></category></item><item><title><![CDATA[QQ第三方登陆校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114369149</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114369149</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 15:14:45 +0800</pubDate><description><![CDATA[private static final String qqOpenIdGetUrl = "https://graph.qq.com/oauth2.0/me";

public static String getOpenId(String accessToken) {
    Map&lt;String, String&gt; param = new HashMap&lt;&gt;();
    param.put("access_token", accessToken);
    String rsp .]]></description><category></category></item><item><title><![CDATA[Twitter 第三方登陆校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114368901</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114368901</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 15:09:20 +0800</pubDate><description><![CDATA[@Value("${app.twitter.login.consumer-key}")
private String consumerKey;
@Value("${app.twitter.login.consumer-secret}")
private String consumerSecret;

private static final String verifyCredentialsUrl = "https://api.twitter.com/1.1/account/verify_credentia.]]></description><category></category></item><item><title><![CDATA[google第三方登陆服务器校验]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114368722</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114368722</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 15:02:50 +0800</pubDate><description><![CDATA[package com.qumitech.douqu.service.account.loginhandler;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.qumitech.douqu.component.exception.BusinessException;
import com.qumitech.douqu.component.net.http.HttpInvokeUti.]]></description><category></category></item><item><title><![CDATA[facebook第三方登陆服务器验证]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/114368602</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/114368602</guid><author>asd657321</author><pubDate>Thu, 04 Mar 2021 14:59:48 +0800</pubDate><description><![CDATA[package com.qumitech.douqu.service.account.loginhandler;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.qumitech.douqu.component.cache.RedisCache;
import com.qumitech.douqu.component.exception.BusinessException;
impo.]]></description><category></category></item><item><title><![CDATA[Maven中setting文件的配置]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/84317094</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/84317094</guid><author>asd657321</author><pubDate>Wed, 21 Nov 2018 12:53:51 +0800</pubDate><description><![CDATA[&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;

&amp;lt;!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work...]]></description><category></category></item><item><title><![CDATA[Maven安装与配置]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/84315524</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/84315524</guid><author>asd657321</author><pubDate>Wed, 21 Nov 2018 12:52:05 +0800</pubDate><description><![CDATA[一、需要准备的东西

1. JDK

2. Eclipse

3. Maven程序包

二、下载与安装

1. 前往https://maven.apache.org/download.cgi下载最新版的Maven程序：



2. 将文件解压到D:\Program Files\Apache\maven目录下:



3. 新建环境变量MAVEN_HOME，赋值D:\Program Files\Ap...]]></description><category></category></item><item><title><![CDATA[maven  手动将本地jar添加到Maven仓库]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/84315057</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/84315057</guid><author>asd657321</author><pubDate>Wed, 21 Nov 2018 10:49:23 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/a491857321/article/details/51085167

 

 

 

实际项目中pom.xml依赖写法：

[html] view plain copy

&amp;lt;dependency&amp;gt;  
	    &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;  
	    &amp;lt;a...]]></description><category></category></item><item><title><![CDATA[HashSet 与LinkHashSet 解析]]></title><link>https://blog.youkuaiyun.com/asd657321/article/details/84313360</link><guid>https://blog.youkuaiyun.com/asd657321/article/details/84313360</guid><author>asd657321</author><pubDate>Wed, 21 Nov 2018 09:31:23 +0800</pubDate><description><![CDATA[一、简介

1、Set概念

Set可以理解为集合，非常类似数据概念中的集合，集合三大特征：1、确定性；2、互异性；3、无序性，因此Set实现类也有类似的特征。

2、HashSet

HashSet继承自AbstractSet，实现了Set接口，但是其源码非常少，也非常简单。内部使用HashMap来存储数据，数据存储在HashMap的key中，value都是同一个默认值



 

二、Hash...]]></description><category></category></item></channel></rss>