虽然一直在项目中使用Spring,但是一些底层的设计思想还真是不太清楚。借此机会,学习升华一下。
收获:
第三章 IoC容器概述
1. 虽然知道Spring的核心技术是控制反转IoC(Inverse of Control)和依赖注入DI(Dependency Injection),也知道Java的反射机制, 但是Spring使用的是Java反射机制作为底层技术实现IoC,这我还是从本书中了解到的,也更深的理解了Spring的控制反转原理。
2. 作者用《墨攻》作为例子解释IoC,还真是通俗易懂,非常形象,容易理解啊。还有Martin Fowler提出的DI概念也确实比IoC直接明了,易于理解。
3. Spring只支持构造函数注入和属性注入,而不支持接口注入。原因是通过接口注入需要额外声明一个接口,增加了类的数目,而且它的效果和属性注入并无本质区别,因此不提倡采用这种方式。
4. 对Java反射机制的描述深入浅出。Java 的反射体系保证了可以通过程序化的方式访问目标类中所有的元素,对于private 或protected 的成员变量和方法,只要JVM 的安全机制允许,也可以通过反射进行调用。
5. Spring支持基于类注解的配置方式, 百度了一下是从2.5版本开始的。和基于XML 文件配置方式的优势在于,类注解的配置方式可以很容易地让开发者控制Bean 的初始化过程,比基于XML 的配置更加灵活。
6.
1)BeanFactory 是Spring 框架的基础设施,面向Spring 本身;ApplicationContext 面向使用Spring 框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext 而非底层的BeanFactory。
2)在BeanFactory 中,很多功能需要以编程的方式实现,而在ApplicationContext 中则可以通过配置的方式实现。
3)ApplicationContext 和BeanFactory 另一个最大的不同之处在于:前者会利用Java 反射机制自动识别出配置文件中定义的BeanPostProcessor、InstantiationAwareBeanPostProcessor和BeanFactoryPostProcessor,并自动将它们注册到应用上下文中;而后者需要在代码中通过手工调用addBeanPostProcessor()方法进行注册。这也是为什么在应用开发时,我们普遍使用ApplicationContext 而很少使用BeanFactory 的原因之一。
纠错:
P82, 在beans.xml中,作者应该是将② 和 ③ 处 定 义 的BeanPostProcessor 和BeanFactoryPostProcessor注释写反了,前者是Bean后处理器,后者才是工厂后处理器。
第16章 实战型单元测试
1. 通过作者对JUnit4中一些新功能的介绍,回头去看原来项目中的单元测试(注:使用的也是JUnit),确实发现有许多可以改进的地方。比如:使用@BeforeClass和@AfterClass代替@Before和@After注解,减少相同测试夹具(Fixture)的重复设置,提高测试效率。
仍然试读中,更新中......
(未完待续)
分享到:
相关推荐
测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读资源.zip测试试读...
书名:《PHP开发实战1200例(第I卷)》(清华大学出版社.潘凯华.刘中华) PDF格式扫描版,全书分为5篇15章,共899页。2011年1月出版。 全书压缩打包成2部分,这是第2部分。 注:本系列图书的第I、II卷再版时均相应改名...
通过这个试读版教程和配套课件,学生可以逐步掌握Java编程的核心概念和技术,为后续的深入学习和实际项目开发打下坚实基础。同时,Q学院提供的链接可能包含更多练习题、习题解答和编程挑战,以辅助学习过程。
《王道论坛计算机考研机试指南》试读版汇编.pdf
《Unity+5实战+使用C#和Unity开发多平台游戏》是Joseph Hocking撰写的一本专为游戏开发者设计的专业指南,旨在帮助读者掌握使用Unity引擎和C#编程语言开发跨平台游戏的技术。这本书在2016年5月发布,其中包含的样章...
【标题】和【描述】提及的是不同类型的应用文书——大学生试读承诺书,主要涉及的是学生在学习、资助方面做出的承诺。这些承诺书通常用于个人或集体表达决心、保证完成任务或改正错误。 【标签】虽然为空,但我们...
《Xamarin iOS开发实战(上册)试读》作为入门资料,旨在为开发者建立坚实的基础,使他们能够理解和掌握使用Xamarin进行iOS应用开发的关键技术。通过深入学习这两章,开发者可以对Xamarin iOS开发有一个全面而直观的...
IAM,即Identity and Access ...综上所述,IAM白皮书全面介绍了身份管理的重要性和实施细节,为读者提供了构建和优化IAM系统的理论基础和实践指导,帮助企业在数字化转型过程中,构建更加安全、高效的身份管理体系。
《PlayMaker动作速查手册试读大学霸》是针对Unity3D游戏开发工具中的PlayMaker扩展模块的一个详细参考资料。PlayMaker是一款强大的可视化状态机工具,它允许开发者通过图形化界面来构建复杂的游戏逻辑,而无需深入...
- 多云开发测试生产分离:开发、测试和生产环境的隔离有助于避免错误部署引发的安全事件,但需要确保环境间的安全隔离和权限管理。 - 多云异构融合:不同云服务商的技术栈差异可能导致安全标准不一致,增加管理...
程序员的SQL金典(试读版),非常好的东东,下下看看哦。
与市场上同类书籍相比,本书最大的特点是将作者多年的游戏开发实战经验和理论知识紧密结合,形成了内容丰富、结构合理且实用性强的综合指导书。 #### 4. J2ME平台与手机游戏开发 Java 2 Micro Edition(J2ME)是专...
这份文档集合了多个有关LoadRunner的分析和实战经验,对于想要深入理解LoadRunner性能测试的朋友来说,是一次不可多得的学习机会。 LoadRunner的核心功能在于它的虚拟用户技术,它能模拟成千上万的用户同时访问应用...
Spring Cloud的目标是让开发者能够快速地开发出分布式系统的一些通用模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性和广播式消息传播、可用性模式、集中化日志记录处理),而无需理解...
作者分享了个人经历和心得,并结合了史玉柱等营销大师的观念,引导读者根据自身特点和兴趣,做出最适合自己的职业规划。 最后,作者在“参禅:超觉静思法”与“境界:独孤求败第一绝学”章节中,引导读者在快节奏的...
在《Android移动性能实战试读文章》中,我们可以探索到Android平台上的应用程序性能优化的关键方面。这篇文章虽然只是试读版,但提供了丰富的信息,旨在帮助开发者提升应用的运行效率、用户体验以及整体性能。以下是...