<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[温良]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zzzyukun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zzzyukun]]></copyright><item><title><![CDATA[rocketMQ消息中间件的使用]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/128483818</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/128483818</guid><author>zzzyukun</author><pubDate>Thu, 29 Dec 2022 16:17:38 +0800</pubDate><description><![CDATA[rocketMQ]]></description><category></category></item><item><title><![CDATA[谈谈Spring中常用的注解]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120423279</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120423279</guid><author>zzzyukun</author><pubDate>Wed, 22 Sep 2021 21:36:07 +0800</pubDate><description><![CDATA[目录

扫描包配置

注入功能

值注入

组件注入

单元测试引入依赖



​

注解是开发中很省事的一种开发方式，使用注解来注册组件，设置了一个包目录，找到所有的类，遍历，是否包含组件注册功能的注解

扫描包配置



类上使用组件注册功能的注解

@Component

@Service

@Repository

@Controller(SpringMVC阶段才会去使用)

可以使用注解的value属性指定组件id；如果没有使用value属性，默认的组件id是类名的首字母小写

注入功能

只..]]></description><category></category></item><item><title><![CDATA[shrio安全框架]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120370202</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120370202</guid><author>zzzyukun</author><pubDate>Sat, 18 Sep 2021 21:46:25 +0800</pubDate><description><![CDATA[目录

认证器​

授权器

SessionManager 会话管理器

认证授权信息是在session中。principal中

realm提供两个方法



执行认证执行授权这些已经提供了，获得授权认证基本上没有提供，认证成功后会通过SessionManager管理principal，princcipal是包含在session里面的



可以配置认证器授权器，也可以使用默认的认证器和授权器，realm才是核心开发

导入依赖



认证器







授权器





后续整合...]]></description><category></category></item><item><title><![CDATA[如何使用springMVC实现文件上传]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120348984</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120348984</guid><author>zzzyukun</author><pubDate>Fri, 17 Sep 2021 15:31:36 +0800</pubDate><description><![CDATA[在javaee中使用文件上传是件很繁琐的事情，那么如何在springMVC的帮助下简化流程呢？

接下来带大家使用下


引入依赖



注册multipartResolver组件

给dispatcherservlet使用，使用过组件id来使用组件，这里需要用到特定的组件id（只能使用这个id值）----multipartResolver



构造请求



配置handler




...]]></description><category></category></item><item><title><![CDATA[使用SpringBoot整合MyBatis]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120275119</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120275119</guid><author>zzzyukun</author><pubDate>Mon, 13 Sep 2021 21:06:42 +0800</pubDate><description><![CDATA[目录



引入依赖

dataSource配置

扫描包配置

引入依赖



dataSource配置

SpringBoot会帮我们自动注册DataSource组件，但是注册组件过程中的值需要我们提供

我们在SpringBoot的配置文件中提供

properties配置文件：key=value

我们在这里就需要特定的key来为注册默认的datasource组件提供参数



提供的这些值会在自动配置的过程中注册组件，注册组件过程中就会使用到我们配置文件中提供到的那些值



扫描包配置


..]]></description><category></category></item><item><title><![CDATA[如何使用SpringBoot]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120273943</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120273943</guid><author>zzzyukun</author><pubDate>Mon, 13 Sep 2021 20:41:46 +0800</pubDate><description><![CDATA[SpringBoot是对Spring框架的进一步简化，它的核心思想就是“约定大于配置”，什么意思呢？就是说，你可以给我依赖、jdk版本等进行设置，但是如果你不设置的话我也有默认的属性，但是一旦你配置了，默认的属性就失效了，这是很重要的一个思想。能给你提供配置的就不让你自己去配置。

SpringBoot是依托于配置类来实现的，所以接下来我们探索下它的使用方法吧。


目录

Starter依赖

引入依赖

实现约定大于配置，注册一些默认的组件 → 自动配置类 AutoConfiguration（实际就是.]]></description><category></category></item><item><title><![CDATA[Spring中的JavaConfig]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120257319</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120257319</guid><author>zzzyukun</author><pubDate>Sun, 12 Sep 2021 23:00:23 +0800</pubDate><description><![CDATA[什么是JavaConfig、通过注解和配置类完成Spring的相关配置

Spring配置都做了什么？ 注册组件、其他配置(扫描包配置、properties配置文件加载、aspectj注解开关、事务注解开关)

目的：干掉配置文件 application.xml


目录

配置类

注册组件

扫描包配置

事务注解驱动

单元测试加载配置类

properties配置文件加载（了解）

aspectj注解开关

配置类

替代的application.xml

要在配置类中注册组件
	其他配置
@C..]]></description><category></category></item><item><title><![CDATA[Spring框架中tx（事务）的三个核心接口]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120256751</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120256751</guid><author>zzzyukun</author><pubDate>Sun, 12 Sep 2021 22:10:44 +0800</pubDate><description><![CDATA[目录

PlatFormTransactionManager

TransactionStatus

TransactionDefinition

传播行为

PlatFormTransactionManager

平台事务管理器

Spring要管理事务，必然要使用平台事务管理器

DataSourceTransactionManager：mybatis如果使用spring管理事务的话要使用的管理器

HibernateTransactionManager：这个是Hibernate持久层框架用的

接口之]]></description><category></category></item><item><title><![CDATA[Spring整合Mybatis]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120255998</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120255998</guid><author>zzzyukun</author><pubDate>Sun, 12 Sep 2021 21:45:40 +0800</pubDate><description><![CDATA[引入依赖

注意：mabitis的依赖只要引入3.4.6以上版本就可以了



新建mybatis配置文件



然后创建接口和映射文件、新建数据库



完成以上后我们来进行查询操作，在测试类写如下代码



使用以上方法去操作太繁琐，所以接下来我们使用Spring来帮助我们管理这些组件



Spring依赖

搭建Spring环境



熟悉脉络后我们就可以注册组件了

注册组件



原先mybatis并未考虑到spring的整合，是通过建造者方式建造出来的，而不是通过直接调用构造方法构造出...]]></description><category></category></item><item><title><![CDATA[如何在idea中使用Git]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120248872</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120248872</guid><author>zzzyukun</author><pubDate>Sun, 12 Sep 2021 15:34:27 +0800</pubDate><description><![CDATA[目录

直接打开远程仓库的文件

使用git

在idea中使用bash命令行（推荐）

ignore

直接打开远程仓库的文件

git clone + open project



使用git

这样就从工作区到暂存区了







在idea中使用bash命令行（推荐）



ignore

工作区根目录.gitignore

哪一部分文件不管理

songge.txt ???? 单个文件

target/ ???? 目录

*.class ???? 某一类

注意：已经管理的文件，忽略管理...]]></description><category></category></item><item><title><![CDATA[如何使用Git（二）]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120248487</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120248487</guid><author>zzzyukun</author><pubDate>Sun, 12 Sep 2021 11:44:45 +0800</pubDate><description><![CDATA[版本回退

如果我们在开发过程中遇到了不可解决的错误，那么我们可以考虑回退到它的初始状态去重新开发。接下来我们介绍下如何从暂存区回退到工作区以及工作区产生的变化回退到原先状态

谨慎操作：一旦回退，再也找不回，远程仓库不回退

工作区产生的变化 ???? 回退为原先的状态

命令：git checkout

适应场景：大规模写了很多代码，分布在不同地方，一个个去删除很繁琐的时候

使用条件：在执行add之前，变化还在工作区的时候，可以回退



工作区提交到暂存区的变化 ???? 回退到工作区

变化已经提]]></description><category></category></item><item><title><![CDATA[如何使用Git（一）]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120237915</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120237915</guid><author>zzzyukun</author><pubDate>Sat, 11 Sep 2021 22:35:29 +0800</pubDate><description><![CDATA[Git是版本控制工具，可以通过它来push/pull我们的远程仓库，进而维护我们小组成员共同开发的代码


目录

第一步 安装Git

Git配置

直接找到配置文件直接修改

使用命令修改

教你使用Git命令

init

clone

status

add

commit

push

log命令

pull

冲突



第一步 安装Git

无脑Next 下一步就可以

Credential manager √ 要不要保存你的用户名密码,否则每一次提交的时候,都要输入用户名和密码

...]]></description><category></category></item><item><title><![CDATA[如何使用码云（Gitee）]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120233133</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120233133</guid><author>zzzyukun</author><pubDate>Sat, 11 Sep 2021 15:03:53 +0800</pubDate><description><![CDATA[创建远程仓库





上面的初始化仓库是需要勾选的，它生成的.gitignore是做忽略管理的配置文件，Git默认跟踪工作区的全部文件，但是字节码文件.class以及target目录下的文件都是不需要的，那么这时候就可以使用gitignore去忽略掉

开源许可证可以选择，仅供学习和个人使用、不可以用于商业用途、用于商业
...]]></description><category></category></item><item><title><![CDATA[简单谈一谈什么是Git]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120231298</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120231298</guid><author>zzzyukun</author><pubDate>Fri, 10 Sep 2021 23:53:05 +0800</pubDate><description><![CDATA[Git是一个基于时间线去进行操作的版本控制工具

它有个很重要的功能就是可以回滚

它是分布式版本控制工具

与之对应的是SVN 是集中式的版本控制工具

分布式版本控制工具Git

分布式有额外的一块空间记录它的文件变化，这样一部分空间不需要网络连通

这里要说明下我们能看到的只有工作区，那么暂存区和本地仓库是一个抽象空间，只有通过命令去进行操作，体现在工作区产生变化，工作区管理的是内容的变化

设置暂存区是为了防止在进行提交过程中不想继续了方便回退
交互的是变化，提交的内容少，速度快，服务器压力也不会很]]></description><category></category></item><item><title><![CDATA[SpringMVC项目如何搭建]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120208780</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120208780</guid><author>zzzyukun</author><pubDate>Thu, 09 Sep 2021 21:15:12 +0800</pubDate><description><![CDATA[创建maven工程后引入依赖（在上篇文章中有详细介绍）




DispatcherServlet配置

在main/webapp/WEB-INF/web.xml文件中配置



详解



SpringMVC配置文件的配置

也就是application.xml的配置

先进行扫描包的配置

而且我们还要引入新的标签 mvc的注解驱动-----mvc:annotation-driven：注册一些必要的组件、增加了对Json的支持、转换器校验器的配置



注册Controller组件

并且在组件中...]]></description><category></category></item><item><title><![CDATA[SpringMVC在maven工程中需要引入的依赖包]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120191504</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120191504</guid><author>zzzyukun</author><pubDate>Wed, 08 Sep 2021 23:46:05 +0800</pubDate><description><![CDATA[这里spring-webmvc是5+2+1

就是Spring的5个核心包 一个web一个是webmvc包 1是jcl日志包

引入servlet-api(scope=provided) 编译的时候需要，而打包、运行的时候不需要

是因为tomcat包含了这些servlet-api字节码文件，如果重复引入的话就会引发一些冲突

引入Jackson-databind(json支持) ???? databind、annotations、core

需要的话可以在下面拷贝走


&lt;dependencie..]]></description><category></category></item><item><title><![CDATA[说下Spring框架中Aspect注解的使用方法吧]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120185785</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120185785</guid><author>zzzyukun</author><pubDate>Wed, 08 Sep 2021 20:16:46 +0800</pubDate><description><![CDATA[目的：将我们aspectj使用aspect的这种形式使用注解和类表达出来，干掉aop:aspect标签

打开注解开关

&lt;aop:aspectj-autoproxy/&gt;

如果不使用注解的话我们是做了如下的步骤

指定了切面组件

切入点配置

指定切面组件中方法使用什么通知方法（通知）

通知方法对应的切入点或切入点表达式

returning和throwing指定形参来接收委托类方法执行结果或抛出的异常

那么接下来我们就使用注解的方式对以上操作一一进行对应替换

指定切面组件



..]]></description><category></category></item><item><title><![CDATA[详解Spring框架AOP中的AspectJ（实战篇）（二）]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120184634</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120184634</guid><author>zzzyukun</author><pubDate>Wed, 08 Sep 2021 17:58:53 +0800</pubDate><description><![CDATA[通过&lt;详解Spring框架AOP中的AspectJ（实战篇）（一）&gt;的学习我们知道了AspectJ中的aspect是自定义通知，那么我们接下来引入Aspectj的aspect（切面）

pointcut + advice

aspect给我们提供了一些通知：通知是在什么时间做什么事情，做的事情是我们自己写的，但是aspect给我们提供了时间

而上面的advice主要是我们自己去写一个自定义的通知然后去实现了methodInterceptor的这样的接口


Aspect

这也是我们后面常规.]]></description><category></category></item><item><title><![CDATA[详解Spring框架AOP中的AspectJ（实战篇）（一）]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120183691</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120183691</guid><author>zzzyukun</author><pubDate>Wed, 08 Sep 2021 17:17:11 +0800</pubDate><description><![CDATA[首先说一下这个AspectJ出现的原因，在AspectJ之前我们可以使用SpringAOP来实现功能如下图所示，但是我们也面临着一些缺陷，就是它注册代理组件、取出方法的指定并不那么灵活，而AspectJ在注册过程中不需要一一指定委托类组件，取出过程中也不需要指定组件id，接下来我们详细介绍下它的使用方法


目录

Pointcut

切入点表达式

execution

@annotation



Pointcut

切入点是指指定增强的方法（必须是容器中的组件方法）

切入点的表达式需要在配置文...]]></description><category></category></item><item><title><![CDATA[SpringIoc小练习引发的思考]]></title><link>https://blog.youkuaiyun.com/zzzyukun/article/details/120169210</link><guid>https://blog.youkuaiyun.com/zzzyukun/article/details/120169210</guid><author>zzzyukun</author><pubDate>Tue, 07 Sep 2021 23:04:02 +0800</pubDate><description><![CDATA[如果我们使用的是有接口实现的组件是可以使用jdk动态代理,但是如果容器中没有接口实现的组件我们使用jdk动态代理就会报异常,那么我们可以结合cglib动态代理一起进行实现,这样我们就可以对容器中的所有的组件进行增强。那么我们可以使用判断来判断是否有接口

实现代码如下




这里也就有了我们接下来要介绍的aop的影子，aop说通俗了就是增强，如果有接口实现的话就使用jdk动态代理进行增强，如果没有接口实现的话就使用cglib进行增强。
...]]></description><category></category></item></channel></rss>