- 博客(22)
- 资源 (9)
- 收藏
- 关注

原创 springboot源码分析
目录1. 概述2. 基于springboot开发web项目3. spring容器的创建4. springboot启动类加入spring容器5. 基于条件配置bean5.1 什么时候进行条件判断5.2 条件判断处理分析5.3 常见Conditional注解分析5.3.1 @ConditionalOnBean5.3.2 @ConditionalOnClass5.3.3 @ConditionalOnProperty6. 自动配置6.1 加载所有的META-INF
2020-09-13 15:06:33
438

原创 六、Spring MVC
1. Spring MVC使用示例我们通过类与方法上面的RequestMapping拼接出来的路径/user/showUser就可以调用到showUser方法,本篇将分析下是如何实现的。@Controller@RequestMapping("/user")public class UserController { @Autowired IUserService userService; @ResponseBody @RequestMapping("/showU
2020-09-02 22:22:06
319

原创 五、Spring AOP
1. AOP入口类的添加上一篇我们分析到AbstractAutoProxyCreator#postProcessAfterInitialization这个方法中如果bean有匹配到advisor将会生成bean的代理实例。AbstractAutoProxyCreator是一个抽象类,要相关方法得以执行就必须要将其子类并且是实现了BeanPostProcessor接口的子类注册到BeanFactory的List<BeanPostProcessor> beanPostProcessors容器中。
2020-08-23 15:39:58
356

原创 四、bean实例化、依赖注入、缓存
目录概述1. bean实例化入口2. 创建bean实例2.1 通过factoryMethod实例化2.2 通过Autowired有参构造实例化2.3 通过默认的无参构造获取bean实例3. applyMergedBeanDefinitionPostProcessors收集属性和方法3.1 CommonAnnotationBeanPostProcessor3.1.1 收集@PostConstruct和@PreDestroy修饰的方法3.1.2 收集@Resource修饰
2020-08-08 13:36:47
767

原创 三、bean收集(生成beanDefinition并注册)
目录概述1. refresh方法概览1.1 obtainFreshBeanFactory1.2 invokeBeanFactoryPostProcessors1.3 registerBeanPostProcessors1.4 finishBeanFactoryInitialization2. 解析spring xml配置文件2.1 处理bean标签2.1.1 解析bean标签生成beanDefinition2.1.2 注册beanDefinition2.2 处理
2020-07-25 13:28:49
524

原创 ClassLoader类加载浅析
重要的结论:ClassLoader的主要作用是通过类的全限定名如:com.yej.learning.entity.User,找到相应的class字节码内容,然后得到java运行空间内存中的Class对象; 不同的ClassLoader的方法 Class<?> loadClass(String name)不同,主要通过Class<?> findClass(String name)方法的不同实现; AppClassLoader、ExtClassLoader都是sun.misc.L
2020-07-19 15:38:56
248

原创 二、spring mvc项目中spring 容器的创建和加载源码分析
概述 本篇主要介绍通过web.xml和通过实现servlet 3.0开始支持的ServletContainerInitializer接口完成spring mvc容器的创建和加载。先把结论抛出来:1.spring mvc项目中有两个spring容器,spring root容器装载着除Controller之外的其他bean,spring mvc容器装载这所有的Controller bean; 2.通过ContextLoaderListener完成spring root容器的加载,通过Dispa..
2020-07-17 21:53:36
439
1

原创 一、准备工作spring 源码下载构建调试
概述 本篇主要讲解怎样下载spring源码到本地并通过gradle构建,以及在源码中写注释、调试源码。1.下载spring源码 使用国内码云镜像通过git下载源码。 git clone https://gitee.com/mirrors/spring-framework.git 源码下载到本地后按需切换分支或Tag,笔者切换的Tag为 v5.2.0.RELEASE2.配置gradle环境变量 配置GRADLE_USER_HOME环境变量,spring源码构建时会下.
2020-07-12 21:12:48
411
1
转载 JProfiler 9部署及使用
原文连接:http://www.cnblogs.com/hanxiaobei/p/5540756.html软件准备:软件地址:http://pan.baidu.com/s/1miptaT6软件部署:windows安装双击即可。 linux安装:运行jprofiler_linux_9_2.sh 脚本文件软件使用:1、打开windows下的Jprof
2016-12-03 17:18:45
5078
转载 JVM内存分配和回收
原文链接:http://www.idouba.net/a-simple-example-demo-jvm-allocation-and-gc/一、简介JVM采用分代垃圾回收。在JVM的内存空间中把堆空间分为年老代和年轻代。将大量(据说是90%以上)创建了没多久就会消亡的对象存储在年轻代,而年老代中存放生命周期长久的实例对象。年轻代中又被分为Eden区(圣经中的伊甸园)、和两个Survi
2016-12-03 17:04:38
677
转载 JVM实用参数_GC日志
原文链接:https://blog.codecentric.de/en/2014/01/useful-jvm-flags-part-8-gc-logging/
2016-12-03 16:57:27
1112
转载 视频码率(Bitrate), 帧率(FPS)和分辨率的联系与区别
视频码率,帧率和分辨率到底哪一个影响电影的清晰度码率:影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。也就是取样率(并不等同与采样率,采样率的单位是Hz,表示每秒采样的次数),单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式
2016-01-02 14:16:06
4370
转载 MP3文件结构及编解码流程
AGENDA * MP3简介 * MP3文件结构 ——Tag_v2(ID3v2)标签帧 ——数据帧 ——Tag_v1(ID3v1)标签帧 *MP3编解码流程 *MP3文件的播放流程一、MP3简介: MP3全称MPEG 1 audio layer 3,其中MPEG(Moving Picture E
2016-01-01 19:28:09
3509
转载 Linux中的各种信号收集
http://en.wikipedia.org/wiki/Category:Unix_signals1.SIGHUP信号UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程I
2015-01-20 12:16:56
986
转载 linux 中RPM
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用命令组合:-ivh:安装显示安装进度--install--verbos
2015-01-17 11:10:08
597
转载 Ubuntu防火墙设置
1.安装 sudo apt-get install ufw 2.启用 sudo ufw enable sudo ufw default deny 运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。 关闭所有外部对本机的访问,但本机访问外部正常。 3.开启/禁用 sudo ufw allow|deny [service] 打开或关闭某个端口,例如:
2015-01-17 10:30:27
743
转载 xxx is not in the sudoers file.This incident will be reported.的解决方法
1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去.2.添加sudo文件的写权限,命令是:chmod u+w /etc/sudoers3.编辑sudoers文件vi /etc/sudoers找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)ps:这里说下你可以sudoers添
2015-01-15 20:45:06
1040
转载 Linux下open与fopen的区别
int open(const char *path, int access,int mode) path 要打开的文件路径和名称 access 访问模式,宏定义和含义如下: O_RDONLY 1 只读打开
2015-01-12 22:23:26
2263
转载 值得推荐的C/C++框架和库 (真的很强大)
值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz
2015-01-09 00:52:14
210141
38
转载 Eclipse 3.7 恢复字体为Courier New
转载自:http://wmljava.iteye.com/blog/1158575 Eclipse以前的默认字体一般是Courier New字体,这种字体看着习惯。但新版Eclipse安装后改变了字体,并且在字体设置的地方没有Courier New字体。 解决办法如下: 1、 找到jFace并用WinRAR打开之: jFace的
2013-12-22 19:54:35
2235
转载 eclipse maven plugin 插件 安装 和 配置
文章转自:http://www.blogjava.net/fancydeepin/archive/2012/07/13/eclipse_maven3_plugin.html环境准备:eclipse(Helios) 3.6maven 3.0.4maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache
2013-12-22 19:12:43
1327
转载 eclipse在线安装maven插件
安装maven插件方法一:从eclipse 3.6开始,eclipse有一个marketplace,这个类似现在手机的app store一样,可以在其中检索相关插件,直接安装,打开help-->eclipse marketplace-->popular,一般第一个就是maven插件,点击install即可。方法二:我们使用maven的插件安装地址:http://do
2013-12-08 15:34:15
18416
Struts 2 Core 2.0.6 API chm格式
2017-09-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人