<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mosqiote的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Mosqiote</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mosqiote]]></copyright><item><title><![CDATA[springboot 整合 Caffine（springboot3.2）]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/137002164</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/137002164</guid><author>Mosqiote</author><pubDate>Mon, 25 Mar 2024 09:10:10 +0800</pubDate><description><![CDATA[Caffine整合SpringBoot]]></description><category></category></item><item><title><![CDATA[缓存Caffine]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/137001971</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/137001971</guid><author>Mosqiote</author><pubDate>Mon, 25 Mar 2024 09:04:55 +0800</pubDate><description><![CDATA[​Caffeine是一个基于Java8开发的提供了近乎最佳命中率的高性能的缓存库。缓存和ConcurrentMap有点相似，但还是有所区别。最根本的区别是ConcurrentMap将会持有所有加入到缓存当中的元素，直到它们被从缓存当中手动移除。但是，Caffeine的缓存Cache 通常会被配置成自动驱逐缓存中元素，以限制其内存占用。在某些场景下，LoadingCache和AsyncLoadingCache 因为其自动加载缓存的能力将会变得非常实用。自动加载元素到缓存当中，异步加载的方式也可供选择。]]></description><category></category></item><item><title><![CDATA[Spring使用EnvironmentPostProcessor自定义启动配置项]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/106518317</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/106518317</guid><author>Mosqiote</author><pubDate>Wed, 03 Jun 2020 11:20:11 +0800</pubDate><description><![CDATA[EnvironmentPostProcessor
使用该接口可以在项目启动时，修改或者添加一些自定义的环境配置；
Environment
spring中对环境的抽象（包含环境变量,系统信息以及用户信息），可以使用ApplicationContext.getEnvironment();获取到。使用Environment.getProperty(“key”),获取环境变量。
但一般情况下很少直接使用Environment，在日常的SpringBoot编程中会使用到@Value("${}")来获取到环境变量里的值]]></description><category></category></item><item><title><![CDATA[SpringWeb项目中常用的工具类，以及AOP中常用的知识点]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/106228065</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/106228065</guid><author>Mosqiote</author><pubDate>Wed, 20 May 2020 11:15:01 +0800</pubDate><description><![CDATA[目录RequestContextHolderServletRequestAttributesAOP中常用的JoinPoint
RequestContextHolder
RequestContextHolder在Spring编程中经常使用到，可以用来获取请求的相关信息；该类可以暴露线程绑定的web请求属性RequestAttributes，项目中常用的用法：

RequestAttributes RequestContextHolder.getRequestAttributes(); 在servlet环境下返]]></description><category></category></item><item><title><![CDATA[多线程(疯狂java)学习]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/104615690</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/104615690</guid><author>Mosqiote</author><pubDate>Mon, 02 Mar 2020 20:55:31 +0800</pubDate><description><![CDATA[多线程的创建和启动
继承Thread类创建线程类
实现Runnable接口作为Thread的target创建线程
使用Callable和Futrue创建线程
Java5 提供了Future来代表Callable里call()方法的返回值.
并为Future接口实现了一个FutureTask的实现类，它还实现了Runnable接口，可以作为Thread的target

常见Callable接口的实现...]]></description><category></category></item><item><title><![CDATA[获取classpath下的文件]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/104264449</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/104264449</guid><author>Mosqiote</author><pubDate>Tue, 11 Feb 2020 15:55:11 +0800</pubDate><description><![CDATA[// 方法1：获取文件或流
this.getClass().getResource("/")+fileName;
this.getClass().getResourceAsStream(failName);
// 方法2：获取文件
File file = org.springframework.util.ResourceUtils.getFile("classpath:test.txt");
//...]]></description><category></category></item><item><title><![CDATA[nginx基础]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/104246544</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/104246544</guid><author>Mosqiote</author><pubDate>Mon, 10 Feb 2020 13:23:30 +0800</pubDate><description><![CDATA[nginx
nginx是什么，做什么事情？
高性能HTTP和反向代理web服务器,占用内存少，并发能力强，专门为性能优化设置，可以承受高达50000的并发量。支持热部署。
反向代理
正向代理
局域网中的客户端要访问Internet，则需要通过代理服务器来访问，这种代理服务器称为正向代理。需要在浏览器中配置代理服务器。
反向代理
不需要配置代理服务器，客户端对此代理是无感知的。我们只需要讲请求发送到...]]></description><category></category></item><item><title><![CDATA[在springboot项目中优雅地实现文件下载]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/103528332</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/103528332</guid><author>Mosqiote</author><pubDate>Fri, 13 Dec 2019 15:36:09 +0800</pubDate><description><![CDATA[@RequestMapping("/fileDownLoad2")
    public ResponseEntity fileDemo(){
        try {
            String fileName = "D:/yuSys/02 运行官方例子1575947491341.pptx";
            // 获取本地文件系统中的文件资源
            Fi...]]></description><category></category></item><item><title><![CDATA[Gradle使用说明]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/103398942</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/103398942</guid><author>Mosqiote</author><pubDate>Thu, 05 Dec 2019 09:50:24 +0800</pubDate><description><![CDATA[Groovy 概述
DSL 领域特定语言
Groovy是脚本的DSL
Groovy基于JVM的开发语言
Groovy可以与Java完美结合，而且可以使用java所有类库
Groovy特性
语法上支持动态类型，闭包等新一代语言特性
Groovy优势

更加敏捷
既可以作为编程语言，也可以作为脚本语言

第一个Groovy程序
println ‘Hello Groovy’
Groovy 语法详解
基础...]]></description><category></category></item><item><title><![CDATA[Java基础温习6]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978867</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978867</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:29:43 +0800</pubDate><description><![CDATA[多线程
并发性（concurrency）和并行性（parallel）是两个概念，并行指在同一时刻，有多条指令在多个处理器上同时执行；并发指在同一时刻只能有一条指令执行，但多个进程指令快速轮换执行，使得在宏观上具有多个进程同时执行的结果。
多进程的并发在不同硬件和操作系统下采用不同的策略，必将常见的有1，公用式的多任务操作策略，例如Windows3.1和Mac OS 9；2，目前使用效率更高的抢占式...]]></description><category></category></item><item><title><![CDATA[Java基础温习5]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978859</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978859</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:29:12 +0800</pubDate><description><![CDATA[输入、输出
File类是java.io包下代表与平台无关的文件和目录。File能新建、删除、重命名文件和目录。但不能访问文件内容本身，如果需要访问，则需要使用输入流、输出流。
访问文件和目录
File类可以创建File实例，既可以是决定路径，也可以是相对路径。默认情况下，系统总是依据用户的工作路径来解释相对路径，这个路径由系统属性user.dir指定，通常也就是运行Java虚拟机时所在的路径。
1...]]></description><category></category></item><item><title><![CDATA[Java基础温习4]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978848</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978848</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:28:41 +0800</pubDate><description><![CDATA[泛型
从Java5开始，引入了泛型。如：
List strList = new ArrayList();
从Java7开始，允许泛型的菱形语法，即后边的类型参数可以省略。
List strList = new ArrayList&lt;&gt;();
Java可以推断出具体的泛型类型。
菱形语法对原有的泛型并没有改变，只是更好地简化了泛型编程。
深入泛型
所谓泛型，就是允许在定义类，接口和方法时使...]]></description><category></category></item><item><title><![CDATA[Java基础温习3]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978833</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978833</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:28:10 +0800</pubDate><description><![CDATA[Java集合
Java5增加了Queue体系集合,代表一种队列集合实现.
所有的集合类都位于java.util包下,JDK1.5之后在java.util.concurrent包下提供了一些多线程支持的集合类.
Java的集合类主要由两个接口派生而出的:Collection和Map,它们时集合框架的根接口.

图片

使用Lambda表达式遍历集合
Java8为Iterable接口新增了一个forE...]]></description><category></category></item><item><title><![CDATA[Java基础温习2]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978824</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978824</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:27:51 +0800</pubDate><description><![CDATA[Java的命令模式
一种方法的执行有不同的结果，假设对数组进行处理；
public interface Command{
	void process(int[] target);
}

public class ProcessArray{
	public void process(int[] target,Command com){
		com.process(target);
	}
}

内部类...]]></description><category></category></item><item><title><![CDATA[小马哥Spring Boot2学习记录]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/100978796</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/100978796</guid><author>Mosqiote</author><pubDate>Wed, 18 Sep 2019 12:26:18 +0800</pubDate><description><![CDATA[Spring Boot2.0-初遇SpringBoot2

SpringBoot插件应放在包含Main方法的模块中（多模块情况）
在使用spirng-boot:run时，应在含有Main方法模块的根目录下执行，并且项目需要进行安装（多模块）


...]]></description><category></category></item><item><title><![CDATA[Java基础(一)]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/99579167</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/99579167</guid><author>Mosqiote</author><pubDate>Wed, 14 Aug 2019 16:09:16 +0800</pubDate><description><![CDATA[数据类型和标识符
java不常见的关键字
goto 保留关键字
transient 短暂的
trictfp
volatile 不稳定的
const 保留关键字
native 原始的
浮点型
因为java浮点数使用的是二进制数据的科学计数法表示，所以在实际生活中不会特别的精确。
如果开发者需要精确保存一个浮点数，则可以考虑使用BigDecimal类；
Java提供了三个特殊的浮点数值：正无穷大，负无...]]></description><category></category></item><item><title><![CDATA[shiro2]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/99470936</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/99470936</guid><author>Mosqiote</author><pubDate>Tue, 13 Aug 2019 20:22:22 +0800</pubDate><description><![CDATA[Session Management
shiro可以为单机应用到集群应用提供会话管理。
shiro可以在任意应用中使用，不论是不是WEB应用，也不管容器是什么。
使用shiro的会话支持 ，主要是shiro有如下特性：

基于POJO/J2SE(IOC友好) 所有内容都基于接口，并与POJO一起实现。可以轻松使用SpringXML、JSON或YAML进行配置；
轻松定义session的存储 这意味...]]></description><category></category></item><item><title><![CDATA[shiro1]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/99349314</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/99349314</guid><author>Mosqiote</author><pubDate>Mon, 12 Aug 2019 22:39:28 +0800</pubDate><description><![CDATA[#一,引入shiro框架
*环境：所以将shiro的一些经验记录下来，希望能帮助到读到本文的你，本文环境shiro1.3.2、spring4.3.5没有使用boot、jdk8、tomcat8.5、mysql5.6、redis3.2.11。
目标：通过shiro实现对后端接口进行权限控制，所有静态资源都不需要权限验证，使用redis实现session共享，避免session单点问题。
shiro版本...]]></description><category></category></item><item><title><![CDATA[java8学习记录]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/97495728</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/97495728</guid><author>Mosqiote</author><pubDate>Sat, 27 Jul 2019 11:03:52 +0800</pubDate><description><![CDATA[java8学习JAVA8 IN ACTOIN 学习第一部分 基础知识第一章：为什么要关心Java81.1 Java在变化1.1.1 java在编程语言生态系统中的位置1.1.2 流处理1.1.3 用行为参数化把代码传递给方法1.1.4 并行与共享的可变数据1.2 java中的函数1.2.1 方法和Lambda作为一等公民1.2.2 传递代码：一个例子1.2.3 从传递方法到Lambda默认方法（接...]]></description><category></category></item><item><title><![CDATA[sql行转列]]></title><link>https://blog.youkuaiyun.com/Mosqiote/article/details/90667112</link><guid>https://blog.youkuaiyun.com/Mosqiote/article/details/90667112</guid><author>Mosqiote</author><pubDate>Wed, 29 May 2019 10:59:23 +0800</pubDate><description><![CDATA[sql内置函数pivot强大的行转列功能

语法：

PIVOT用于将列值旋转为列名（即行转列），在SQL Server2000可以用聚合函数配合CASE语句实现

PIVOT的一般语法是：PIVOT(聚合函数(列) FOR 列 in (…) )AS P

完整语法：

table_source

PIVOT(

聚合函数（value_column）

FOR pivot_column

IN(...]]></description><category></category></item></channel></rss>