自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李阿昀的博客

求田问舍,怕应羞见,刘郎才气

  • 博客(40)
  • 资源 (44)
  • 论坛 (3)
  • 收藏
  • 关注

原创 历时三个月,史上最详细的Spring注解驱动开发系列教程终于出炉了,给你全新震撼

写在开头从2020年11月27日到今天(即2021年3月21日)为止,历时接近三个月,我写的「史上最详细的Spring注解驱动开发系列教程」终于新鲜出炉了!好嗨哟!我实在是太开心了,因为每一篇文章我都花费了大量的时间、精力和心血,一篇文章写下来,少则3、4个小时,多则3、4天,我实在是太难了!整个系列教程,我是总共分为了五大部分,分别是:IOC容器、AOP切面、声明式事务、扩展原理和web相关。大部分内容都是以实战为主,期间我也适当的讲解了Spring的底层原理和源码相关的知识。尤其是在研究AOP底层原

2021-03-21 18:27:14 2999 20

原创 IntelliJ IDEA快速入门 | 第二十八篇:详述IntelliJ IDEA(或者Eclipse)中一些常用的快捷键(下)

由于IntelliJ IDEA(或者Eclipse)中常用的快捷键比较多,所以这里我就分两篇文章来给大家进行讲述了,这是第二篇。F2:查看文档说明如果咱们现在想查看一下System类的文档说明,那么该怎么办呢?其实,咱们之前在讲IntelliJ IDEA中的常用配置时,就做过这样一个设置,即当把光标放到某个类上以后,1秒种之后显示出该类的一个文档说明。设置了还好,要是我们没有这样设置呢,那也没有关系,我们可以把光标放在某个类上,然后再按下F2键,这时马上就会显示出该类的一个文档说明了,而不是在1秒种以后

2021-03-31 19:46:54 174 2

原创 IntelliJ IDEA快速入门 | 第二十七篇:详述IntelliJ IDEA(或者Eclipse)中一些常用的快捷键(上)

由于IntelliJ IDEA(或者Eclipse)中常用的快捷键比较多,所以这里我就分两篇文章来给大家进行讲述了,这是第一篇。Alt + R:执行(run)如果我们当前类或者说它里面的main方法已经执行过了,那么会在IntelliJ IDEA工具栏的位置标识出当前类,如下图所示。当我们修改好当前类,想要运行它里面的main方法时,直接按下Alt + R就可以哦了。这是我们第一个快捷键,比较简单。Alt + /:提示补全(Class Name Completion)该快捷键也是跟Eclipse

2021-03-31 11:23:35 118

原创 IntelliJ IDEA快速入门 | 第二十六篇:IntelliJ IDEA(或者Eclipse)常用快捷键之Windows版

写在前面在上一篇文章中,大家已经通过File→Manage IDE Settings→Import Settings...这种方式导入了我给大家提供的keymap-shkstart.jar这样一个jar包,导进来以后,大家进入Keymap界面中,你会看到shkstart这样一个选项,如下图所示,这说明你导入jar包是成功的。好,那再强调一下我们为什么要导入这样一个jar包。大家如果之前使用习惯了Eclipse,现在切换到IntelliJ IDEA的时候,你会发现这两个不同的IDE的快捷键有很大的差别,

2021-03-31 10:27:01 93

原创 IntelliJ IDEA快速入门 | 第二十五篇:IntelliJ IDEA快捷键的设置

在讲完关于IntelliJ IDEA的一些常用设置之后,接下来,我们就来讲一讲IntelliJ IDEA中快捷键的设置,而快捷键是需要在如下Keymap界面中来设置的。作为一个程序员,应该都知道这一点,就是快捷键在我们开发当中的重要性是不言而喻的,怎么说它的重要性都不为过,如果你能够非常灵活地使用开发中的一些快捷键,那么这一定会增加你开发的效率。上面我也说了,IntelliJ IDEA中的快捷键是需要在Keymap界面中设置的,而且我们还可以看到一共有如下几项可供我们选择。如果大家之前没有使用过E

2021-03-30 11:34:46 96

原创 IntelliJ IDEA快速入门 | 第二十四篇:IntelliJ IDEA中的常用配置(十六)——设置代码水平或垂直显示

我们还可以设置代码水平或垂直显示显示哟????。就以Customer类为例来演示,在该类的文件名(即Customer.java)上右键,这时你会在右键下拉列表中看到Split Right和Split Down这样两个选项,一个代表垂直显示代码,一个代表水平显示代码。选中Split Right这一项,你会发现代码确实是垂直显示了。那这有啥用呢?举个例子吧,比如说有的同学在写代码的时候,喜欢参照着别人的来写,那么他就可以做了,在左侧放着别人写的代码,然后在右侧参照别人来写自己的代码。而选中Split

2021-03-29 23:40:50 157

原创 IntelliJ IDEA快速入门 | 第二十三篇:IntelliJ IDEA中的常用配置(十五)——设置为省电模式

这个设置不是很重要,大家可以直接忽略,不过还是要给大家稍微提一下。单击File菜单,你会看到在其下拉列表中有Power Save Mode这样一项,如下图所示。该项代表的就是省电模式,如果你选择了省电模式的话,那么IntelliJ IDEA就会关闭代码检查和代码提示等功能。这里倒不是说要让大家去选这个项,而是要告诉你如果你一不小心选中了这一项以后,那么IntelliJ IDEA变成了一个省电模式了,它就会没有代码检查和代码提示等这些功能了。你要是真发生了这样的情况,绝逼是你误勾选了。所以,一般来讲,

2021-03-29 23:13:07 112

原创 IntelliJ IDEA快速入门 | 第二十二篇:IntelliJ IDEA中的常用配置(十四)——设置自动编译

这个设置很有必要来给大家说一下。首先,进入IntelliJ IDEA的设置界面中,并展开Build, Execution, Deployment这一项,这时你会看到Compiler,选中它之后,可以看到如下图所示的界面。在以上界面中,可以看到有两项还没打上勾,它们分别是:Build project automatically:当前的工程是否是要自动编译的Compile independent modules in parallel:是不是需要并行的对多个模块进行编译大家记得把以上两项打上勾就行

2021-03-29 22:58:26 79

原创 IntelliJ IDEA快速入门 | 第二十一篇:IntelliJ IDEA中的常用配置(十三)——设置项目文件的编码

如何设置项目文件的编码呢?首先,进入IntelliJ IDEA的设置界面中,并展开Editor这一项,这时你会看到File Encodoings,选中它之后,可以看到如下图所示的界面。在以上界面中,我们就可以来设置当前工程所涉及到的相关代码的编码集了。在Editor > File Encodoings这个界面中,我们可以看到跟编码集相关的有三项,它们分别是:Global Encoding:已经是UTF-8编码集了Project Encoding:需要做个修改,把它改成UTF-8编码集Def

2021-03-29 19:05:02 107 2

原创 IntelliJ IDEA快速入门 | 第二十篇:IntelliJ IDEA中的常用配置(十二)——修改类头的文档注释信息

首先,进入IntelliJ IDEA的设置界面中,并展开Editor这一项,这时你会看到File and Code Templates,选中它之后,可以看到如下图所示的界面。然后,在以上界面中找到Includes并点击它,这时你就能看到如下界面了,可以看到在其下面有File Header这样一项,在这一项中我们就可以来添加.java文件的头部信息了。那怎么添加.java文件的头部信息呢?官方给我们提供了一个相关的说明文档,即一些常用的预设的变量,下面我就给大家直接贴出来了。大家依照官方给出的以上

2021-03-29 17:51:47 104 1

原创 IntelliJ IDEA快速入门 | 第十九篇:IntelliJ IDEA中的常用配置(十一)——设置超过指定import个数,改为*

首先,进入IntelliJ IDEA的设置界面中,并依次展开Editor和Code Style这两项,这时你会看到Java,选中它之后,可以看到如下图所示的界面。然后,在以上界面中找到Imports并点击它,这时你就能看到如下界面了。在以上界面中的那两处其实不用做修改,大家看一下就行了,如果你要真想修改,那么也不是不可以。那以上界面中的这两处说的是啥意思呢?现在我们是已经设置好自动导包功能了,如果我们在某个类中导入了util包下的很多个类或者接口,一旦超过5个以后,IntelliJ IDEA就会帮

2021-03-29 16:42:51 110

原创 IntelliJ IDEA快速入门 | 第十八篇:IntelliJ IDEA中的常用配置(十)——修改代码中注释的字体颜色

我们对Java中的注释已经很熟悉了,毕竟我们得经常要在一个类中写上一些注释,注释是非常重要的,建议大家要经常写注释,否则的话,以后代码量日积月累,你都不知道你写的某个方法或者某行代码是干嘛的了,对着屏幕干瞪着眼,自己骂道,尼玛的,这是谁他妈写的烂代码啊!殊不知正是自己写的代码。这里,我们不妨在示例类(即HelloWorld)上加上一行单行注释,如下图所示。不知道以上单行注释的字体颜色你看不看得习惯,有的人觉得还可以,有的人就觉得看起来太灰了,不舒服,因此他想根据自己的需要来对单行注释的字体颜色做一个修

2021-03-29 16:11:13 124

原创 IntelliJ IDEA快速入门 | 第十七篇:IntelliJ IDEA中的常用配置(九)——设置默认的字体、字体大小、字体的行间距

首先,进入IntelliJ IDEA的设置界面中,并展开Editor这一项,这时你会看到Font,选中它之后,可以看到如下图所示的界面。然后,在以上界面中修改字体、字体大小以及字体的行间距。通常的话,人们都会习惯于用Consolas这个字体,不知道你是不是这样的,我之前也偏向于用这个字体,但这里我们不妨就用下JetBrains Mono这个字体,因为我觉得还蛮好看的。当然了,根据你自己的个人喜好了,爱用哪个就用哪个。字体大小,大家也可以设置的大一些,除了手动修改字体大小之外,你还可以这样做哟????,

2021-03-29 12:50:32 109

原创 IntelliJ IDEA快速入门 | 第十六篇:IntelliJ IDEA中的常用配置(八)——设置取消单行显示tabs的操作

首先,进入IntelliJ IDEA的设置界面中,并依次展开Editor和General这两项,这时你会看到Editor Tabs,选中它之后,可以看到如下图所示的界面。然后,将Show tabs in one row前面的勾去掉,去掉之后再点击OK按钮。以上设置完了之后有什么效果呢?抱歉,我这里还演示不出来,因为目前我写的类比较少,也就是说.java文件比较少。大家也都知道如果类比较多的时候,你经常需要切换去做修改,那到顶部的时候IntelliJ IDEA就只能做一个隐藏操作了,而我们同时又可能需

2021-03-29 12:03:46 129

原创 IntelliJ IDEA快速入门 | 第十五篇:IntelliJ IDEA中的常用配置(七)——忽略大小写提示

这个设置是非常重要的,举个例子来说,我们在写代码的过程当中,写一个String或者Stringb,IntelliJ IDEA都能给我们一个提示,如下图所示。但是,如果你写String时将其首字母写成小写,即string,那么此时IntelliJ IDEA就不会再给我们正确的提示了。这是因为Java语言是严格区分大小写的。但我们现在就有这样一个需求,即现在我们就希望IntelliJ IDEA在忽略大小写的情况下,给我们一个提示,那该咋怎呢?很简单,首先进入IntelliJ IDEA的设置界面中,并依

2021-03-28 21:27:40 94

原创 IntelliJ IDEA快速入门 | 第十四篇:IntelliJ IDEA中的常用配置(六)——设置显示行号和方法间的分隔符

设置显示行号其实,IntelliJ IDEA已经默认帮我们显示行号了,如下图所示。如果行号没有显示出来,那么该怎么办呢?很简单,首先进入IntelliJ IDEA的设置界面中,并依次展开Editor和General这两项,这时你会看到Appearance,选中它之后,可以看到如下图所示的界面。从上图中可以看到,IntelliJ IDEA已经默认帮我们设置显示行号了。如果你发现Show line numbers前面的框框没有打上勾,那么记得打上勾就好了,打上勾之后点击OK按钮即可,如此一来就能显示

2021-03-28 18:55:47 97

原创 IntelliJ IDEA快速入门 | 第十三篇:IntelliJ IDEA中的常用配置(五)——设置自动导包功能

有的时候,我们需要在IntelliJ IDEA中设置自动导包功能。如果不设置自动导包功能,那么我们要是写上这样一行代码:ArrayList list = new ArrayList();效果就是下面这个样子的。在咱们之前的Eclipse当中,也是默认没有设置自动导包功能的,因此需要使用Ctrl + Shift + O快捷键来导包。只不过现在在IntelliJ IDEA中这个快捷键是Alt + Enter,这个叫手动地导包,我们不妨使用一下该快捷键,效果如下图所示。那么,如何来设置自动导包功能呢

2021-03-28 18:11:02 105

原创 IntelliJ IDEA快速入门 | 第十二篇:IntelliJ IDEA中的常用配置(四)——设置鼠标悬浮提示

有的时候,我们需要实现一种效果,就是鼠标悬浮在类上,然后显示这个类的信息,要想实现这个效果,就得来设置鼠标的悬浮提示了,那如何来设置鼠标的悬浮提示呢?首先,进入IntelliJ IDEA的设置界面中,然后展开Editor这一项,这时在其下面你能看到一个General,再次展开这一项,你就能看到Code Completion了,选中它之后,可以看到如下图所示的界面。接着,勾选Show the documentation popup...前面的框框,这说的是显示一个文本提示,勾选好之后点击OK按钮,如下图

2021-03-28 16:57:25 110

原创 IntelliJ IDEA快速入门 | 第十一篇:IntelliJ IDEA中的常用配置(三)——设置鼠标滚轮修改字体大小

不知道你有没有发现当咱们在编写代码的时候,由于字体太小,所以眼睛看得很不舒服,这点大家也不用担心,因为我们可以通过鼠标滚轮来修改字体大小,详细步骤如下。首先,进入IntelliJ IDEA的设置界面中,然后展开Editor这一项,这时在其下面你能看到一个General,选中它之后,可以看到如下图所示的界面。接着,勾选Change font size with Ctrl+Mouse Wheel前面的框框,并点击OK按钮,如下图所示。这时,我们按住键盘的Ctrl键,然后滚动鼠标的那个滚轮,就能看到编辑

2021-03-28 14:32:53 100

原创 IntelliJ IDEA快速入门 | 第十篇:IntelliJ IDEA中的常用配置(二)——设置IntelliJ IDEA编辑区彩色代码主题

在上一篇文章中,我们谈了一下如何设置IntelliJ IDEA的主题,其实还有其他的几个点可以谈,就是我们可以设置IntelliJ IDEA中编辑区的主题。那么,如何设置IntelliJ IDEA中编辑区的主题呢?首先进入IntelliJ IDEA的设置界面中,然后展开Editor这一项,这时在其下面你能看到一个Color Scheme,选中它之后,你就能选择IntelliJ IDEA中编辑区的主题了,如下图所示,可以看到编辑区默认的主题是Darcula。...

2021-03-27 21:22:33 122

原创 IntelliJ IDEA快速入门 | 第九篇:IntelliJ IDEA中的常用配置(一)——设置IntelliJ IDEA的主题

写在前面在讲完Project和Module这两个概念、它们之间的关系,以及如何去创建和删除Module之后,接下来我们就要对IntelliJ IDEA做一些常规配置了。大家也看到了,目前咱们写的这个HelloWorld不管是从字体还是字体的大小来看的话,都不太舒服,因此我们接下来就要对IntelliJ IDEA做一些常规配置了。IntelliJ IDEA有很多人性化的设置,我们必须单独的拿出来讲解一下,也正因为是这些人性化的设置让那些IntelliJ IDEA的死忠粉更加死心塌地使用和分享它。对于这

2021-03-27 12:55:40 114

原创 IntelliJ IDEA快速入门 | 第八篇:IntelliJ IDEA中Module的使用

写完第一个Hello World入门程序之后,我们来说一个新的概念,叫Module,翻译过来是模块,该概念在咱们之前使用的Eclipse中是闻所未闻的。在Eclipse当中是有Workspace(工作空间)和Project(工程)这样的概念的,想必用Eclipse做过开发的同学,应该是非常熟悉了。而在IntelliJ IDEA当中,首先我们在启动的时候就说过了,它是没有Workspace(工作空间)这样的概念的,一上来说的就是Project(工程)这样的概念。此外,IntelliJ IDEA还提出了一个新

2021-03-26 16:12:32 295

原创 IntelliJ IDEA快速入门 | 第七篇:你知道在IntelliJ IDEA中如何显示和关闭工具栏和目录栏吗?

其实在上一篇文章中,我们还忘了做一件事,那就是设置显示常见的视图。初学者首次启动IntelliJ IDEA在编写完其第一个Java程序后,如果你要是不对IntelliJ IDEA进行任何设置的话,那差不多就是下面这个样子的。正常来说的话,基于以上IntelliJ IDEA最基本的一个界面来做开发,是没有任何问题的。但是,有些同学喜欢把工具栏(即Toolbar)给调出来,因为一开始IntelliJ IDEA是没有将其给勾选上的,如下图所示。那工具栏(即Toolbar)指的又是啥呢?它其实就是上面有好多

2021-03-26 11:49:55 202

原创 IntelliJ IDEA快速入门 | 第六篇:使用IntelliJ IDEA编写你的第一个Java程序

现在我们就要使用IntelliJ IDEA来编写咱们的第一个Java程序了,这是我们的第一次,值得好好记录!第一步,双击IntelliJ IDEA在桌面上的快捷方式启动IntelliJ IDEA,如果你是首次启动IntelliJ IDEA,那么这时会弹出如下这样一个对话框,这儿是来告诉我们是否需要导入我们以前的一些版本的设置,由于我们这并没有,所以默认即可,然后直接点击OK按钮。第二步,这时你会发现弹出了一个如下对话框,这儿是来告诉我们要激活IntelliJ IDEA。因为我们安装的是UItima

2021-03-24 13:25:46 225

原创 IntelliJ IDEA快速入门 | 第四篇:图文并茂教你基于Windows 10系统安装IntelliJ IDEA

下载IntelliJ IDEA首先,打开IntelliJ IDEA的官网,即https://www.jetbrains.com/idea/。你会发现打开这个官网还是蛮要时间的,所以你得耐心点。打开之后,你会看到官网是下面这个样子的。然后,点击Download按钮,进入IntelliJ IDEA的下载页面,如下图所示,并点击Windows(.exe)选项下载.exe的安装程序。这时,会跳转到如下页面,可以看到IntelliJ IDEA的.exe安装程序共有716MB,接着点击下载按钮开始下载Inte

2021-03-23 21:10:55 155

原创 IntelliJ IDEA快速入门 | 第三篇:彻底卸载IntelliJ IDEA

写在前面之前,笔者在自己本机上就已经安装过了一个IntelliJ IDEA,只不过其版本是2019.1.3,在桌面上的快捷方式如下图所示。而且之前我也已经将其破解了,就是网上找的方案来进行破解的,破解之后确实能用,不过由于那个时候我还在用Eclipse做Java后端开发,所以一直都没用IntelliJ IDEA,不知道过了多长时间,打开它发现已过试用期,MD,老子不是已经破解过了吗,而且好像还能用到2099年,就这,就这,就这,就这就不能用了????各位看官老爷们,今天是2021年3月23日,下午1

2021-03-23 15:10:04 749 5

原创 Spring注解驱动开发第58讲——体验一把Spring MVC中的异步请求处理(返回DeferredResult)

写在前面在上一讲中,我们讲了一下Spring MVC异步请求处理的第一种使用方式,即将方法的返回值写成Callable。然而在实际的开发过程中,异步请求处理是绝不可能这么简单的,就拿下面这个实际的场景来说,如下图所示。我们以创建订单为例,创建订单的请求一进来,应用1就要启动一个线程,来帮我们处理这个请求了。如果假设应用1并不能创建订单,创建订单需要应用2来完成,那么此时应该怎么办呢?应用1可以把创建订单的消息存放在消息中间件中,比如RabbitMQ、Kafka等等,而应用2就来负责监听这些消息中间件里

2021-03-21 13:49:23 147 1

原创 Spring注解驱动开发第57讲——体验一把Spring MVC中的异步请求处理(返回Callable)

写在前面在上一讲,我讲了一下Servlet 3.0里面的异步请求处理。而在这一讲中,我会基于Servlet 3.0中的异步请求处理机制来讲述一下Spring MVC里面的异步请求处理。其实,我们完全可以参考Spring MVC的官方文档来掌握它里面的异步请求处理。打开Spring MVC的官方文档,找到1.6. Asynchronous Requests这一章节并打开,稍微浏览一下这一章节中的内容,如下图所示。我们应该知道,Spring MVC中的异步请求处理是基于Servlet 3.0中的异步请求

2021-03-20 15:11:08 149 1

原创 Spring注解驱动开发第56讲——详解Servlet 3.0异步请求

写在前面前面呢,我们利用ServletContainerInitializer机制,并通过无配置文件的方式整合了Spring MVC,而且还知道了如何来个性化定制Spring MVC。而在本讲中,我们就来说一下Servlet 3.0给我们带来的又一个重要的特性,即异步请求处理。Servlet 3.0的又一重要特性,即异步请求处理在没有Servlet 3.0之前,我们请求处理的方式都是Thread-Per-Request,也就是说,每一个Http请求进来,我们都会给你开一个线程来从头到尾负责处理。如果用

2021-03-20 07:51:10 106

原创 Spring注解驱动开发第55讲——定制与接管Spring MVC

写在前面在前一讲中,我们使用注解的方式(即配置类的方式)来整合了Spring MVC。而在这一讲中,我就来教你如何来定制与接管Spring MVC。试着回顾一下我们以前整合Spring MVC的开发,是不是应该有一个Spring MVC的配置文件啊?例如mvc.xml,在该配置文件中我们会写非常多的配置,你还记得吧????!下面我就列举一下该配置文件中的一些常用配置,比如我们经常写上这样的配置:<mvc:default-servlet-handler/>该配置的作用就是将Spring

2021-03-18 21:39:14 123 1

原创 Spring注解驱动开发第54讲——Servlet 3.0整合Spring MVC

写在前面在上一讲中,我们分析清楚了Servlet 3.0整合Spring MVC的底层原理。接下来,我们就要以注解的方式将Spring MVC整合进来了。其实,大家完全可以参考Spring的官方文档的这一块的写法。因为这块的写法跟我们的分析是一模一样的。Servlet 3.0与Spring MVC的整合。。。...

2021-03-18 10:53:53 157 1

原创 Spring注解驱动开发第53讲——Servlet 3.0与Spring MVC的整合分析

写在前面在前两讲中,我们说了一下ServletContainerInitializer机制以及如何利用ServletContext向web容器中注册Servlet、Listener以及Filter这三大组件。而在这一讲中,我们就来详细分析下Servlet 3.0是如何利用ServletContainerInitializer机制来整合Spring MVC的。注意,这儿还只是来研究分析整合Spring MVC的底层,并没有开始正式整合Spring MVC哟????,这是下一讲的事情。Servlet 3.

2021-03-17 08:37:25 176

原创 Spring注解驱动开发第52讲——使用ServletContext注册web三大组件

写在前面上一讲,我们说了一下基于运行时插件的ServletContainerInitializer机制,而在这一讲中,我们就来详细讲一下ServletContext用来注册web组件的用法,即使用ServletContext注册web组件。这些web组件就是我们通常所说的web三大组件,也就是Servlet、Filter以及Listener。为什么我们一定要掌握使用ServletContext来注册web组件呢?因为我们是一定会遇到这样场景的,如果是以注解的方式来注册web组件,那么前提是这些web组件

2021-03-16 10:47:23 190 4

原创 Spring注解驱动开发第51讲——ServletContainerInitializer来了,傻孩子们,快跑啊!

写在前面在前一讲中,我们也大概知道了Servlet 3.0规范里面的一些简单注解,利用它们可以来注册Servlet、Filter以及Listener等组件。但是,这些注解不是我们要讲述的重点,因为毕竟原生的Servlet开发场景用到的还是比较少的。那么,在这一讲中,我们来讲述什么呢?打开Servlet 3.0标准规范文档,找到Annotations and pluggability这一章节下的8.2 Pluggability这一小节,找到之后,再找到该小节下的最后一个小节,即Shared librari

2021-03-15 18:27:44 166

原创 Spring注解驱动开发第50讲——带你走进Servlet 3.0的世界

写在前面终于,终于「史上最详细的Spring注解驱动开发系列教程」更新到第三个部分了,即与web相关的部分,走到这里,我真的是太难了,好像我写这个系列教程似乎没有多少人关注啊!不过还是有小伙伴对我做出了鼓励,比如这位叫ycrossx的同学:还有比如这位修罗帝尊张三同学:真的好少有人评论啊!所以,我格外珍惜这少得有点可怜的评论,希望大家对我这个系列教程多多评论、支持我继续写下去,因为我太需要大家的鼓励了,我是一定会肝完这个系列教程的,不辜负大家的期望。接下来我会继续开一个系列教程,名字可能就叫「史上

2021-03-14 09:23:46 283 4

原创 Spring注解驱动开发第49讲——Spring IOC容器创建源码解析(九)之Spring IOC容器创建源码总结

经过前面8讲的学习,我们就阅读了一下Spring IOC容器整个的创建以及初始化过程的源码,在跟踪Spring源码时,整个流程可以说是非常复杂的。因此,在本讲中,我们就来对其做一个小的总结。首先,我们得需要掌握Spring中的一些核心思想,我们所要掌握的第一个核心思想就是,Spring IOC容器在启动的时候,会先保存所有注册进来的bean的定义信息,将来,BeanFactory就会按照这些bean的定义信息来为我们创建对象。那么,如何来编写这些bean的定义信息呢?你可以有如下两种方式来编写这些bea

2021-03-11 11:52:19 162

原创 Spring注解驱动开发第48讲——Spring IOC容器创建源码解析(八)之完成BeanFactory的初始化创建工作,最终完成容器创建

写在前面在上一讲中,我们把单实例bean的创建流程完完整整地过了一遍了,其所牵扯到的步骤还是非常繁琐的。

2021-03-10 12:00:21 143

原创 Spring注解驱动开发第47讲——Spring IOC容器创建源码解析(七)之初始化所有剩下的单实例bean(下)

写在前面紧接上讲,我们来继续讲解创建单实例bean的流程。在上一讲末尾,我们看到了这一点,在创建单实例bean之前,InstantiationAwareBeanPostProcessor这种类型的后置处理器中两个方法的执行时机,即先执行其postProcessBeforeInstantiation方法,并看该方法有没有返回值(即创建的代理对象),若有则再执行其postProcessAfterInitialization方法。而且,此时程序停留在了下面这行代码处。于是,我们继续按下F6快捷键让程序往下

2021-03-07 11:39:32 216

原创 Spring注解驱动开发第46讲——Spring IOC容器创建源码解析(六)之初始化所有剩下的单实例bean(上)

写在前面在前面几讲中,我们已经对IOC容器创建过程中的大部分方法进行过研究,其中比较核心的方法就是如下两个:invokeBeanFactoryPostProcessors方法:该方法在《Spring注解驱动开发第42讲——Spring容器创建源码解析(二)之执行BeanFactoryPostProcessor》这一讲中已经详细讲过了,要是还有不清楚的同学,可以查阅这篇文章哟!registerBeanPostProcessors方法:该方法在《Spring注解驱动开发第43讲——Spring容器创建源

2021-03-02 22:50:13 219

原创 Spring注解驱动开发第45讲——Spring IOC容器创建源码解析(五)之初始化事件派发器

写在前面在上一讲中,我们已经搞清楚了如下initMessageSource方法所做的事情,它无非就是来初始化MessageSource组件的。然后,我们让程序运行到以上第534行代码(即initApplicationEventMulticaster方法)处。顾名思义,该方法是来初始化事件派发器的。那么,究竟是如何来初始化事件派发器的呢?这时,我们就得来好好研究一下initApplicationEventMulticaster方法里面究竟做了些什么事了。初始化事件派发器。。。...

2021-03-01 07:15:01 190

MyBatis的逆向工程——generatorSqlmapCustom

MyBatis的逆向工程——generatorSqlmapCustom

2017-05-13

SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

2017-05-15

MyBatis框架的学习(二)——MyBatis架构与入门

MyBatis框架的学习(二)——MyBatis架构与入门

2017-05-11

一天搞定jQuery(二)——使用jQuery表格的隔行换色

一天搞定jQuery(二)——使用jQuery表格的隔行换色

2017-05-10

Spring的第一个案例

Spring的第一个案例

2016-10-16

用@Resource注解完成属性装配

用@Resource注解完成属性装配

2016-10-19

Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一

Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一

2016-10-22

为Spring集成的Hibernate配置二级缓存

为Spring集成的Hibernate配置二级缓存

2016-10-23

使用流程设计器插件设计一个请假流程

使用流程设计器插件设计一个请假流程

2017-05-07

SpringMVC学习(一)——SpringMVC入门小程序

SpringMVC学习(一)——SpringMVC入门小程序

2017-05-15

一天搞定jQuery(三)——使用jQuery完成复选框的全选和全不选

一天搞定jQuery(三)——使用jQuery完成复选框的全选和全不选

2017-05-11

编码剖析@Resource注解的实现原理

编码剖析@Resource注解的实现原理

2016-10-19

使用Spring的注解方式实现AOP的细节

使用Spring的注解方式实现AOP的细节

2016-10-21

一天搞定jQuery(一)——使用jQuery完成定时弹出广告

一天搞定jQuery(一)——使用jQuery完成定时弹出广告

2017-05-09

一天搞定jQuery(四)——使用jQuery完成省市二级联动的效果

一天搞定jQuery(四)——使用jQuery完成省市二级联动的效果

2017-05-11

MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

2017-05-13

Spring管理的Bean的生命周期

Spring管理的Bean的生命周期

2016-10-16

Spring的三种实例化Bean的方式

Spring的三种实例化Bean的方式

2016-10-16

一天搞定jQuery(五)——使用jQuery完成下拉列表左右选择

一天搞定jQuery(五)——使用jQuery完成下拉列表左右选择

2017-07-06

教你一天玩转JavaScript(三)——使用JavaScript完成图片轮播的效果

教你一天玩转JavaScript(三)——使用JavaScript完成图片轮播的效果

2017-04-27

Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发

Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发

2016-10-23

教你一天玩转JavaScript(四)——使用JavaScript实现定时弹出广告定时隐藏广告

教你一天玩转JavaScript(四)——使用JavaScript实现定时弹出广告定时隐藏广告

2017-05-02

Spring如何装配各种集合类型的属性

Spring如何装配各种集合类型的属性

2016-10-19

MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

2017-05-13

Spring+JDBC组合开发

Spring+JDBC组合开发

2016-10-21

使用Spring配置文件实现AOP

使用Spring配置文件实现AOP

2016-10-21

教你一天玩转JavaScript(五)——使用JavaScript完成注册页面表单提示及校验

教你一天玩转JavaScript(五)——使用JavaScript完成注册页面表单提示及校验

2017-05-03

使用Spring的注解方式实现AOP入门

使用Spring的注解方式实现AOP入门

2016-10-20

教你一天玩转JavaScript(二)——完成对注册页面的数据的简单校验

教你一天玩转JavaScript(二)——完成对注册页面的数据的简单校验

2017-04-27

MyBatis的逆向工程测试

MyBatis的逆向工程——generatorSqlmapCustom

2017-05-13

SpringMVC学习(十二)——SpringMVC中的拦截器

SpringMVC学习(十二)——SpringMVC中的拦截器

2017-05-20

让Spring自动扫描和管理Bean

让Spring自动扫描和管理Bean

2016-10-19

教你一天玩转JavaScript(八)——使用JavaScript完成省市联动的效果

教你一天玩转JavaScript(八)——使用JavaScript完成省市联动的效果

2017-05-05

使用JDK中的Proxy技术实现AOP功能与使用CGLIB实现AOP功能

使用JDK中的Proxy技术实现AOP功能与使用CGLIB实现AOP功能

2016-10-19

MyBatis框架的学习(六)——MyBatis整合Spring

MyBatis框架的学习(六)——MyBatis整合Spring

2017-05-13

教你一天玩转JavaScript(六)——使用JavaScript完成后台数据展示表格的隔行换色

教你一天玩转JavaScript(六)——使用JavaScript完成后台数据展示表格的隔行换色

2017-05-04

Spring4.2.5+Hibernate4.3.11组合开发

Spring4.2.5+Hibernate4.3.11组合开发

2016-10-21

编码剖析Spring依赖注入的原理

编码剖析Spring依赖注入的原理

2016-10-17

教你一天玩转JavaScript(七)——使用JavaScript完成复选框的全选和全不选的效果

教你一天玩转JavaScript(七)——使用JavaScript完成复选框的全选和全不选的效果

2017-05-05

编码剖析Spring管理Bean的原理

编码剖析Spring管理Bean的原理

2016-10-16

李阿昀的留言板

发表于 2020-01-02 最后回复 2020-08-12

使用javamail这套API发送邮件失败

发表于 2016-09-23 最后回复 2016-09-23

为何我点击分类管理这一超链接时,下面的添加分类和查看分类就是显示不出来啊?

发表于 2016-09-17 最后回复 2016-09-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除