<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[微笑的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/javaasd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; javaasd]]></copyright><item><title><![CDATA[SpringBoot整合Redis]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/117253467</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/117253467</guid><author>javaasd</author><pubDate>Tue, 25 May 2021 14:20:02 +0800</pubDate><description><![CDATA[什么是Redis？
Redis 是由意大利人 Salvatore Sanfilippo（网名：antirez）开发的一款内存高速缓存数据库。Redis 全称为：Remote Dictionary Server（远程数据服务），  该软件使用 C 语言编写，典型的 NoSQL 数据库服务器，== Redis 是一个 key-value 存储系统，它支持丰富的数据类型，如：string、list、set、zset(sorted set)、hash。Redis 本质上是一个 Key-Value 类型的内存数据库=]]></description><category></category></item><item><title><![CDATA[git推送本地项目到远程仓库]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115873824</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115873824</guid><author>javaasd</author><pubDate>Fri, 23 Apr 2021 11:32:17 +0800</pubDate><description><![CDATA[1、使用git进入项目的文件夹下，初始化本地仓库

2、登录远程仓库，创建一个代码仓库
3、把本地仓库的代码提交到暂存区中

4、起一个地址的别名

git remote add ha https://**/dian/haha.git 表示起别名
git remote -v 查看起的别名
5、使用git push ha master推送分支，发现提示错误

出现错误的主要原因是git中的README.md文件不在本地代码目录中，使用git pull --rebase origin master命令进行代码合]]></description><category></category></item><item><title><![CDATA[git分支]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115864001</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115864001</guid><author>javaasd</author><pubDate>Wed, 21 Apr 2021 13:17:34 +0800</pubDate><description><![CDATA[什么是分支？
在版本控制过程中，使用多条线同时推进多个任务
分支的好处

同时进行推动多个功能的开发，提高开发效率。
各个分支在开发过程中，如果某一个分支开发失败，不会对其他分支有任何影响，失败的分支删除重新开始即可。

分支的常用命令
使用git branch -v命令查看分支
使用git branch 分支名称命令创建新的分支
使用git checkout 分支名称命令切换分支
合并分支：

切换到接受修改的分支上（被合并，增加新内容）上
执行git merge 被合并的分支名称命令合并分支

解决合并]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Mybatis-Plus]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115860274</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115860274</guid><author>javaasd</author><pubDate>Mon, 19 Apr 2021 13:35:04 +0800</pubDate><description><![CDATA[简介
MyBatis-Plus (opens new window)（简称 MP）是一个 MyBatis (opens new window)的增强工具，在 MyBatis 的基础上只做增强不做改变，为简化开发、提高效率而生。
特性
无侵入：只做增强不做改变，引入它不会对现有工程产生影响，如丝般顺滑
损耗小：启动即会自动注入基本 CURD，性能基本无损耗，直接面向对象操作
强大的 CRUD 操作：内置通用 Mapper、通用 Service，仅仅通过少量配置即可实现单表大部分 CRUD 操作，更有强大的条件]]></description><category></category></item><item><title><![CDATA[git切换版本]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115730800</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115730800</guid><author>javaasd</author><pubDate>Sun, 18 Apr 2021 22:48:52 +0800</pubDate><description><![CDATA[使用git log 或 git log --pretty=oneline查看可切换的版本信息

使用 git reflog 可以查看到某个版本需要移动多少索引

其中图中的 HEAD 是指针，指向的是当前的版本
1、使用 git reset --hard 需要回退版本的key 可以回退指定的版本

2、使用 git reset --hard HEAD^ 来回退版本，注意：一个^代表回退一个版本， ^也只能用于回退版本，不能前进版本。 也可以使用 git reset --hard HEAD~3 来代表回退的版]]></description><category></category></item><item><title><![CDATA[git添加提交以及查看状态]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115702785</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115702785</guid><author>javaasd</author><pubDate>Fri, 16 Apr 2021 14:13:41 +0800</pubDate><description><![CDATA[git status 命令用于查看在你上次提交之后是否有对文件进行再次修改。

红色的gg.txt文件表示该文件不在本地的暂存区中，可以使用 git add 文件名 的方式进行添加到暂存区

添加之后肯定是有删除的，可以使用git rm --cached 文件名的方式从暂存区中删除

使用vim 文件名进入编译模式，编辑好修改内容，按Esc按钮然后输入 :wq 保存并退出。然后使用 git commit 提交，告知红色的内容，意思是，这个文件修改过，但没有在暂存区里。所以不能提交。把这个文件提交进暂存区然后]]></description><category></category></item><item><title><![CDATA[SpringBoot异步任务和定时任务]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115033030</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115033030</guid><author>javaasd</author><pubDate>Thu, 01 Apr 2021 12:34:09 +0800</pubDate><description><![CDATA[异步任务
异步任务主要用于处理处理时间长并且不需要返回结果的一些内容，比如，微信小程序中，有一个方法中间既有业务处理的一些逻辑代码又有订阅消息通知，如果这个订阅消息处理的时间是3s，那这个接口就需要等待3s才能给用户展示结果。我们不想让用户等待那么长时间，就可以使用异步任务。
1、在启动类上标注 @EnableAsync  表示开启基于注解的异步任务
@SpringBootApplication
@EnableAsync //开启异步任务
public class SpringBootWebRestfulc]]></description><category></category></item><item><title><![CDATA[SpringBoot使用JavaMailSender发送邮件]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/115032882</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/115032882</guid><author>javaasd</author><pubDate>Mon, 22 Mar 2021 00:07:48 +0800</pubDate><description><![CDATA[1、首先需要导入pom依赖
        &lt;!--   引入emil模块     --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
            &lt;artifactId&gt;spring-boot-starter-mail&lt;/artifactId&gt;
        &lt;/dependency&gt;

2、配置ap]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/114985704</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/114985704</guid><author>javaasd</author><pubDate>Fri, 19 Mar 2021 11:20:06 +0800</pubDate><description><![CDATA[简介：
RabbitMQ是实现了高级消息队列协议（AMQP）的开源消息代理软件（亦称面向消息的中间件）。RabbitMQ服务器是用Erlang语言编写的，而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
核心概念
Message：
消息，消息是不具名的，它是由消息头和消息体组成。消息体是不透明的，而消息体则由一系列的可选属性组成，这些属性包括routing-key（路由键）、priority（相对于其他消息的优先权）、delivery-mode（指出该消息可能需]]></description><category></category></item><item><title><![CDATA[Spring缓存抽象]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/114154302</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/114154302</guid><author>javaasd</author><pubDate>Thu, 18 Mar 2021 17:16:29 +0800</pubDate><description><![CDATA[1、简介：
Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术；并支持使用Cache（JSR-107）注解简化我们开发；
Cache接口为缓存的组件规范定义，包含缓存的各种操作集合；
Cache接口下Spring提供了各种xxxCache的实现；如RedisCache，EhCacheCache，ConcurrentMapCache等；
每次调用需要缓存功能的方法时，]]></description><category></category></item><item><title><![CDATA[@CurrentUser获取当前登录用户信息]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/114892265</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/114892265</guid><author>javaasd</author><pubDate>Wed, 17 Mar 2021 14:48:39 +0800</pubDate><description><![CDATA[1、首先需要用到token，在用户表中存放一个token，每当用户登录的时候就用UUID生成一个token替换之前的token，并保存（修改）到缓存中。
2、创建@CurrentUser注解（如上面的代码）。
3、写一个组件，用来存放和取出token
4、配置PublicInterface（用来标注可以不使用token）
5、配置一个拦截器，判断是否存在token和token是否有效
6、配置解析器，用来获取当前登录用户的信息

...]]></description><category></category></item><item><title><![CDATA[SpringBoot整合Druid配置数据源监控]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/114121868</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/114121868</guid><author>javaasd</author><pubDate>Fri, 26 Feb 2021 11:48:59 +0800</pubDate><description><![CDATA[1、pom.xml配置文件引入依赖
        &lt;!--   引入druid     --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;com.alibaba&lt;/groupId&gt;
            &lt;artifactId&gt;druid&lt;/artifactId&gt;
            &lt;version&gt;1.1.8&lt;/version&gt;
        &lt;/de]]></description><category></category></item><item><title><![CDATA[SpringBoot+Thymeleaf实现国际化]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/113971016</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/113971016</guid><author>javaasd</author><pubDate>Tue, 23 Feb 2021 10:09:39 +0800</pubDate><description><![CDATA[前言
SpringBoot自动配置好了管理国际化资源文件的组件
@ConfigurationProperties(prefix = "spring.messages")
public class MessageSourceAutoConfiguration {
/**
Comma-separated list of basenames, each following the ResourceBundle convention. 
Essentially a fully-qualified classpath]]></description><category></category></item><item><title><![CDATA[Java集合]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/112372656</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/112372656</guid><author>javaasd</author><pubDate>Sat, 09 Jan 2021 15:37:53 +0800</pubDate><description><![CDATA[Java集合类存放于java.util包中，主要分为三种：Set、List、Map。其中Collection是集合List和Set基本接口。（关系如下图）

List
List是有序的集合，List一共有三个实现类。分别是：ArrayList、Vector、LinkedList。
1、ArrayList（数组）
ArrayList 是最常用的 List 实现类，内部是通过数组实现的，它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔，当数组大小不满足时需要增加存储能力，就要将已经有数组的数据复]]></description><category></category></item><item><title><![CDATA[Java返回统一结果集和异常处理]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/109663331</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/109663331</guid><author>javaasd</author><pubDate>Fri, 13 Nov 2020 00:35:31 +0800</pubDate><description><![CDATA[前言
随着前后端分离的潮流，现在需要考虑的是如果和前端有个明确的规定，比如：我添加了一条数据，后端设计的时候是void类型的，没有返回值，那前端怎么判断这个添加的操作是否成功呢？这个时候如果有一个约定，不管是不是void类型，我们把结果用结果集包起来，通过code的形式告知前端，这样前端不就可以判断是否操作成功了吗？
返回统一结果集的例子
1.首先创建一个Maven工程
        &lt;!--   导入spring boot支持  --&gt;
        &lt;dependency&gt;
]]></description><category></category></item><item><title><![CDATA[Linux系统部署Web项目]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/109335518</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/109335518</guid><author>javaasd</author><pubDate>Wed, 28 Oct 2020 17:21:00 +0800</pubDate><description><![CDATA[前言
学习了那么久的Java现在就让我们来部署Java Web项目。使用的连接工具使用的是：FinalShell，项目类型是Maven项目。
具体步骤
1.首先，用idea创建一个SpringBoot工程。配置好视图。然后点击右边的Maven–&gt;选择需要上传的项目下的Lifecycle–&gt;install。结果如下图（生成一个 .jar文件）

2.这样项目就打包完成了，然后打开FinalShell。选择上传打包好的jar文件

3.文件上传好之后输入命令 ls 查看上传的文件
4.之后输入命令 ]]></description><category></category></item><item><title><![CDATA[redis持久化]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/106671363</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/106671363</guid><author>javaasd</author><pubDate>Sat, 24 Oct 2020 00:06:19 +0800</pubDate><description><![CDATA[持久化简介
  利用永久性存储介质将数据进行保存，在特定的时间将保存的数据进行恢复的工作机制称之为持久化。
为什么要持久化
  防止数据的意外丢失，确保数据安全性。
持久化过程保存什么？

RDB：将当前数据状态进行保存，以快照的形式存储数据结果，存储格式简单，关注点在数据（存储形式：二进制）
AOF：将数据的操作过程进行保存日志的形式，存储操作过程，存储格式复杂，关注点在数据的操作过程（存储形式：日志）

RDB启动方式
 命令执行

谁：redis操作者（用户）
什么时间：随时进行
干什么事情：保存数据]]></description><category></category></item><item><title><![CDATA[Hystrix服务降级]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/109086819</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/109086819</guid><author>javaasd</author><pubDate>Thu, 15 Oct 2020 16:59:52 +0800</pubDate><description><![CDATA[前言
分布式系统面临的问题：复杂分布式体系结构中的应用程序有数十个依赖关系，每个依赖关系在某些时候将不可避免地失败。
服务雪崩
多个微服务之间调用的时候，假设微服务A调用微服务B和微服务C，微服务B和微服务C又调用其它的微服务，这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用影响时间过长或者不可用，对微服务A的调用就会占用越来越多的系统资源，进而引起系统崩溃，所谓的“雪崩效应”。
对于高流量的应用来说，单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是，这些应用程序还可能]]></description><category></category></item><item><title><![CDATA[Java8中的Stream API]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/109014248</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/109014248</guid><author>javaasd</author><pubDate>Wed, 14 Oct 2020 14:34:16 +0800</pubDate><description><![CDATA[前言
ava8中有二个最为重要的改变。第一个是Lambda 表达式，另一个则是Strean API（Java.util.stream.*）Stream是Java8中处理集合的关键抽象概念，它可以指定你希望对集合进行的操作，可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作，就类似与使用SQL执行的数据库查询。也可以使用Stream API 来并行执行操作。简而言之，Stream API 提供了一种高效且易于使用的处理数据的方式。
什么是Stream（流）？
是数据的渠]]></description><category></category></item><item><title><![CDATA[Java8新特性简介]]></title><link>https://blog.youkuaiyun.com/javaasd/article/details/109012381</link><guid>https://blog.youkuaiyun.com/javaasd/article/details/109012381</guid><author>javaasd</author><pubDate>Sun, 11 Oct 2020 15:42:59 +0800</pubDate><description><![CDATA[前言
Java8即JDK版本1.8，Java8与Java8之前的JDK版本的内容相差还是很大的，其中最主要的因该就是Lambda 表达式和 Stream API了。
Java8的优点：
1.速度更快
2.代码更少（增加了新的语法lambda表达式）
3.强大的Stream API
4.便于并行
5.最大化减少空指针异常Optional
其中最为核心的就是Lambda表达式和Stream API
为什么使用Lambda表达式？
Lambda是一个匿名函数，我们可以把Lambda表达式理解为是一段可以传递的代码]]></description><category></category></item></channel></rss>