<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Aran_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Aran_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Aran_]]></copyright><item><title><![CDATA[[spring基础之ioc] 1.2 容器概述]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/108429379</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/108429379</guid><author>Aran_</author><pubDate>Wed, 07 Apr 2021 11:52:59 +0800</pubDate><description><![CDATA[我们同样通过官方文档的方式，逐步学习：spring 官方文档

The org.springframework.context.ApplicationContext interface represents the Spring IoC container and is responsible for instantiating, configuring, and assembling the beans. The container gets its instructions on what object]]></description><category></category></item><item><title><![CDATA[【跟着源码学英语】 Map.java 是个接口]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/113941084</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/113941084</guid><author>Aran_</author><pubDate>Fri, 02 Apr 2021 17:44:57 +0800</pubDate><description><![CDATA[不定时java源码学习，这次是Map.java]]></description><category></category></item><item><title><![CDATA[【跟着官网学】mybatis-001 ：入门]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/110349309</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/110349309</guid><author>Aran_</author><pubDate>Sun, 29 Nov 2020 22:17:53 +0800</pubDate><description><![CDATA[本文参考官网地址：点我直达


这是【跟着官网学】mybatis的第一篇文章。

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例。


一、XML配置
XML 配置文件中包.]]></description><category></category></item><item><title><![CDATA[[spring基础] 1. 理解SpringIOC思想]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/108421571</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/108421571</guid><author>Aran_</author><pubDate>Sun, 06 Sep 2020 10:43:01 +0800</pubDate><description><![CDATA[IOC是与AOP齐名，作为spring的重要特性之一，必知必会，如果你以前和我一样只是胡乱用过，现在，是时候展现真正的技术了，一起学习下：
一、如何理解
我们要来简要的看下spring官网对IOC的一些描述：

IoC is also known as dependency injection (DI). It is a process whereby objects define their dependencies (that is, the other objects they work with) ]]></description><category></category></item><item><title><![CDATA[[系统设计]电商 & 秒杀系统-设计思路和实现方法]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/108287212</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/108287212</guid><author>Aran_</author><pubDate>Fri, 28 Aug 2020 22:22:13 +0800</pubDate><description><![CDATA[本文为转载：查看原文
mark 一篇关于秒杀系统的设计思路，以后仔细学习

一、秒杀业务分析
正常电子商务流程
（1）查询商品
（2）创建订单
（3）扣减库存
（4）更新订单
（5）付款
（6）卖家发货
秒杀业务的特性
（1）低廉价格
（2）大幅推广
（3）瞬时售空
（4）一般是定时上架
（5）时间短、瞬时并发量高；

二、秒杀技术挑战
假设某网站秒杀活动只推出一件商品，预计会吸引1万人参加活动，也就说最大并发请求数是10000，秒杀系统需要面对的技术挑战有：


对现有网站业务造成冲击
秒杀活动只是网站营]]></description><category></category></item><item><title><![CDATA[[java设计模式]我眼中的抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107835497</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107835497</guid><author>Aran_</author><pubDate>Thu, 06 Aug 2020 15:01:10 +0800</pubDate><description><![CDATA[千呼万唤的抽象工厂模式，它来了！
上一篇分享的工厂模式，它在这里

定义 ：抽象工厂模式（Abstract Factory），提供了一个创建一系列相关或相互依赖对象的接口，而无需指定他们具体的类。
假设你已经了解了工厂模式，那么我们对比一下工厂模式和抽象工厂的类图：
工厂模式：

抽象工厂模式：

那么，如何理解呢？
在介绍工厂模式的时候时候，我自己胡诌了一个面点和面点厂的例子，这次，我们还是用这个例子进行说明，只是稍微换一个方式：

说明：

面点厂相当于父类，具体的面点继承于面点厂的“加面”和“加糖”的]]></description><category></category></item><item><title><![CDATA[[java并发] java高并发系列 - 第29天：高并发中常见的限流方式]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/106946957</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/106946957</guid><author>Aran_</author><pubDate>Tue, 04 Aug 2020 17:59:46 +0800</pubDate><description><![CDATA[原文链接：查看原文

感谢公众号“ 路人甲Java”的分享，如有冒犯，请联系删除，快去关注他吧



本文内容：

介绍常见的限流算法
通过控制最大并发数来进行限流
通过漏桶算法来进行限流
通过令牌算法来进行限流
限流工具类RateLimiter


常见的限流的场景

秒杀活动，数量有限，访问量巨大，为了防止系统宕机，需要做限流处理
国庆期间，一般的旅游景点人口见多，采用排队方式做限流处理
医院看病通过发放排队号来做限流处理


常见的限流算法

通过控制最大并发数来进行限流
使用漏桶算法来进行限流
使用]]></description><category></category></item><item><title><![CDATA[[Spring基础]原来，Spring实现定时器是这样的！]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107693181</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107693181</guid><author>Aran_</author><pubDate>Tue, 04 Aug 2020 10:09:55 +0800</pubDate><description><![CDATA[项目中偶尔会用到定时任务的执行，比如定时发短信，定时发送对账文件等等，今天，我们就一起学习下，在Spring中如何实现定时器！

1 Java自带的定时器
1.1  介绍
对没错，它就是Timer，我们来了解下它的身份：

所在包：java.util
作者：Josh Bloch
出生日期：JDK1.3
直系亲属：Object
个人简历：一堆English

别怕，下面是英语学习时间：

A facility for threads to schedule tasks for future execution]]></description><category></category></item><item><title><![CDATA[[资源分享] 这是我收集到的资源！]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107767055</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107767055</guid><author>Aran_</author><pubDate>Mon, 03 Aug 2020 16:34:42 +0800</pubDate><description><![CDATA[分享一些自己收集到的资源，等硬盘满了，找起来方便，长期更新
1. 数据库相关

mycat数据库中间件官方文档：mycat-definitive-guide.pdf

2. java相关

阿里java开发手册泰山版
Java编程思想 - 第四版
Java并发编程的艺术
Spring Cloud微服务实战


技术的高度不会因为分享而降低，而会因善于分享和使用分享而提高！


...]]></description><category></category></item><item><title><![CDATA[[java工具类] AES加密解密工具类]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107666225</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107666225</guid><author>Aran_</author><pubDate>Wed, 29 Jul 2020 16:09:24 +0800</pubDate><description><![CDATA[AES是一种对称加密方式，加密解密同用一个Key，常用类，不解释
	package com.wr.park_toolkit.utils;
	
	import java.util.Properties;
	
	import javax.crypto.Cipher;
	import javax.crypto.spec.IvParameterSpec;
	import javax.crypto.spec.SecretKeySpec;
	
	import org.apache.tomcat.util.codec.b]]></description><category></category></item><item><title><![CDATA[[java工具类]MD5withRSA签名算法工具类]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107664913</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107664913</guid><author>Aran_</author><pubDate>Wed, 29 Jul 2020 15:33:04 +0800</pubDate><description><![CDATA[加密 &amp; 解密 &amp; 签名 若想深究，还是有点深度的，本身密码学就是一门单独的学科，先会用，有个感性的认识，之后慢慢研究！
package com.wr.park_toolkit.utils;

import java.security.InvalidKeyException;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import ]]></description><category></category></item><item><title><![CDATA[[java工具类] 请求参数工具类]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107663000</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107663000</guid><author>Aran_</author><pubDate>Wed, 29 Jul 2020 14:17:06 +0800</pubDate><description><![CDATA[在开发过程中，我们经常需要将请求参数进行 &amp; 拼接，以下是一个工具类，可以将Map中的数据转换为 &amp; 格式的请求参数：
package com.wr.park_toolkit.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util]]></description><category></category></item><item><title><![CDATA[[java设计模式]我眼中的工厂模式]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107639781</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107639781</guid><author>Aran_</author><pubDate>Tue, 28 Jul 2020 23:33:42 +0800</pubDate><description><![CDATA[工厂模式,又叫工厂方法模式，其应用非常广泛，今天我们一起学习下工厂模式：

1.1 定义
工厂方法模式（Factory Method） ：定义一个用于创建对象的接口，让子类决定实例化哪一个类，工厂方法使一个类的实例化延迟到其子类。
如果你已经了解了简单工厂模式，对于工厂模式的定义就会更加清楚一些，我们还是用加减法的例子，先通过类图来对比一下简单工厂模式和工厂模式的区别：
简单工厂模式：

工厂模式：

意思就是，与简单工厂相比，我们实例化具体的实体的工作交给了其子类或实现类，而不是由自己来完成。
文字描述.]]></description><category></category></item><item><title><![CDATA[【java基础】java泛型[一]——使用泛型的三种方式]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107635756</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107635756</guid><author>Aran_</author><pubDate>Tue, 28 Jul 2020 15:00:27 +0800</pubDate><description><![CDATA[一、为啥要使用泛型？
以前没有泛型的时候，泛型的设计时通过继承来实现的。ArrayList只维护一个Object引用的数组，存在了两个问题：

获取一个值时，必须进行强制类型转换
可以向其中添加任何类型的值

而现在，泛型提供了更好的解决方法，使用 {类型参数}：
var files = new ArrayList&lt;String&gt;();
//或
ArrayList&lt;String&gt; files = new ArrayList&lt;&gt;();


二、Java泛型的应用场景
Jav]]></description><category></category></item><item><title><![CDATA[[java并发概念篇]乐观锁与悲观锁]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107614915</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107614915</guid><author>Aran_</author><pubDate>Mon, 27 Jul 2020 17:27:01 +0800</pubDate><description><![CDATA[原文地址

何为悲观锁与乐观锁

乐观锁对应于生活乐观的人总是想着事情往好的方向发展，悲观锁对应生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点，不能以场景而定说一种人好于另外一种人。


悲观锁
总是假设最坏的情况，每次去拿数据的时候都认为别人会修改，所以每次拿数据的时候都会上锁，这样别人想拿这个数据就会阻塞直到它拿到锁（共享资源每次只给一个线程使用，其它线程阻塞，用完后再把资源转让给其他线程）。传统的关系型数据库里面就用到了很多这种锁机制，比如 行锁，表锁，读锁，写锁等，都是在做操作之前先上]]></description><category></category></item><item><title><![CDATA[[java设计模式] 我眼中的简单工厂模式]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107513291</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107513291</guid><author>Aran_</author><pubDate>Fri, 24 Jul 2020 21:01:55 +0800</pubDate><description><![CDATA[在学习简单工厂模式之前，我们先来复习下设计模式的六大原则：
1.1 设计模式的六大原则


开闭原则（Open Close Principle）
开闭原则就是说对扩展开放，对修改关闭。在程序需要进行拓展的时候，不能去修改原有的代码，实现一个热插拔的效果。所以一句话概括就是：为了使程序的扩展性好，易于维护和升级。想要达到这样的效果，我们需要使用接口和抽象类。


里氏代换原则（Liskov Substitution Principle）
里氏代换原则(Liskov Substitution Principl.]]></description><category></category></item><item><title><![CDATA[[技术书单] 图灵Python图书阅读路径]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107551421</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107551421</guid><author>Aran_</author><pubDate>Fri, 24 Jul 2020 00:51:45 +0800</pubDate><description><![CDATA[买了本图灵出版的Python书籍，附赠了张 “图灵Python图书阅读路径”，虽然存在很大的为了卖书的成分，不过，图灵的书确实还是不错的，绘制成电子思维导图，与诸君分享学习：


]]></description><category></category></item><item><title><![CDATA[[springBoot]震惊！多线程中使用@Autowired居然会发生这样的事！]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107480389</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107480389</guid><author>Aran_</author><pubDate>Tue, 21 Jul 2020 15:09:59 +0800</pubDate><description><![CDATA[近期，在项目中需要用到多线程，而且需要读取配置文件中RocketMq的相关参数，于是乎自自然而然的将配置文件映射到实体类中（据说Spring不建议这样干？），重复三遍，以后具体查一下：
为什么Spring不建议将配置映射到实体类？
为什么Spring不建议将配置映射到实体类？
为什么Spring不建议将配置映射到实体类？
然后，自然而然的用@Autowired在多线程中注入这个实体类！就这样奇迹发生了…
在多线程中注入的实体类一直 空指针异常，而在test中却完全没问题，说明我的映射是成功了的，那，为啥？
]]></description><category></category></item><item><title><![CDATA[[java设计模式] 我眼中的单例模式（二）]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107447962</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107447962</guid><author>Aran_</author><pubDate>Sun, 19 Jul 2020 17:08:53 +0800</pubDate><description><![CDATA[上一篇[java设计模式] 我眼中的单例模式（一） 我们介绍了一些单例（单件）模式的基本概念，本文将对其中介绍的几种实现方式进行介绍：

1. 饿汉模式
类加载的时候就创建实例
优点：类加载的时候就创建一次实例，避免了多线程同步问题
缺点：即使单例没被用到也会创建，浪费内存
public class Singleton{
	private static Singleton instance = new Singleton();
	private Singleton(){}
	public static Si]]></description><category></category></item><item><title><![CDATA[[java设计模式] 我眼中的单例模式（一）]]></title><link>https://blog.youkuaiyun.com/Aran_/article/details/107447715</link><guid>https://blog.youkuaiyun.com/Aran_/article/details/107447715</guid><author>Aran_</author><pubDate>Sun, 19 Jul 2020 17:02:57 +0800</pubDate><description><![CDATA[本篇将对单例模式的定义及应用场景部分进行简要描述

定义： 确保一个类只有一个实例，并且提供一个全局访问点。属于设计模式三大类中的 创建型模式
特点：

只有一个实例
自我实例化
提供全局访问点

优点：

由于单例模式只生成一个实例，所以能够节约资源，减少性能开销，提高系统效率，同时也能够严格控制客户对它的访问。

缺点：

正是因为系统中只有一个实例，这样就导致了单例类的职责过重，违背了“单一职责原则”，同时也没有抽象类，这样扩展起来会有一定困难。

常见的实现方式：

饿汉式
懒汉式
双重检锁式
静态]]></description><category></category></item></channel></rss>