<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kengkeng2017的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kengkeng2017</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kengkeng2017]]></copyright><item><title><![CDATA[JAVA内部类&闭包]]></title><link>https://blog.youkuaiyun.com/kengkeng2017/article/details/69788162</link><guid>https://blog.youkuaiyun.com/kengkeng2017/article/details/69788162</guid><author>kengkeng2017</author><pubDate>Sat, 08 Apr 2017 22:18:16 +0800</pubDate><description><![CDATA[首先回答一个问题，为什么我们需要用内部类？一般说来，内部类继承自某个类或者实现某个接口，内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入其外围类的窗口。也就是说，当外围类可以直接实现接口的时候，是不用使用内部类的，当外围类实现不了的时候才需要用内部类。除此之外，还有另外一层意思，内部类提供了一种进入其外围类的窗口。最后一点，由于每个内部类都可以独立的继承一个（接口的）实现，所以]]></description><category></category></item><item><title><![CDATA[Spring AOP基础（Spring 3.x企业应用开发实战第六章）学习总结]]></title><link>https://blog.youkuaiyun.com/kengkeng2017/article/details/54032158</link><guid>https://blog.youkuaiyun.com/kengkeng2017/article/details/54032158</guid><author>kengkeng2017</author><pubDate>Thu, 05 Jan 2017 00:27:40 +0800</pubDate><description><![CDATA[AOP（面向切面编程）是与OOP(面向对象编程)是完全不一样的概念，是OOP编程的有益补充。AOP以JAVA动态代理技术为基础，像黑客一样动态的“织入”代码，实现AOP功能。
为什么要使用AOP？ 
如果把业务类看成一段圆木，将方法看成圆木的一截，我们会发现业务代码与非业务代码像年轮一样一圈一圈的。这个时候，这些非业务代码无法通过抽象父类的方式消除所有重复。 比如说： 
- 事务管理启动； 
- 业]]></description><category></category></item><item><title><![CDATA[Spring容器高级主题（Spring 3.x企业应用开发实战第五章）学习总结]]></title><link>https://blog.youkuaiyun.com/kengkeng2017/article/details/53999333</link><guid>https://blog.youkuaiyun.com/kengkeng2017/article/details/53999333</guid><author>kengkeng2017</author><pubDate>Tue, 03 Jan 2017 23:27:13 +0800</pubDate><description><![CDATA[IoC装配流程
ResoureLoader 
从硬盘中读取配置文件，并使用Resource表示这个配置文件;
BeanDefinitionRegistry将读取到的配置文件进行解析，并将每一个解析为BeanDefinition，并保存到BeanDefinitionRegistry中；
BeanFactoryPostProcessor主要实现如下两件事： 
1 .  对使用占位符的标签进行解析，得到最]]></description><category></category></item></channel></rss>