如果有仔细研究过前一篇的《Spring温故知新(四)用HashMap写一个自己的Spring IoC简易容器吧!》
http://bolide74.iteye.com/blog/1002610,那么这一章将会非常通俗易懂。
一、什么是Bean
Bean的直接意译,叫豆子。如果把一个Java应用程序当作一杯香浓的咖啡,那么Bean也就相当于煮这杯咖啡的咖啡豆,它是煮这杯咖啡的基础。
其实看过前一章的RobotBean代码,就能发现这个所谓的Bean其实就是一个POJO(简单的Java对象),只不过叫法不一样而已。
二、Spring的IoC容器:
首先要指出的是一些初学者可能会犯的错误,就是把Spring的XML配置文件当成了IoC容器。会犯这种错误是因为在使用Spring的时候一直在操作XML,就容易认为修改XML就是在修改容器内容,就想当然的把XML当做IoC容器了(我一开始就犯这种错误了)。
事实上XML配置文件,其实是IoC容器的“配置容器”。就相当于前一篇我的IoC容器里的HashMap容器,它们起的作用都是相同的,就是用来配置和管理IoC容器里的所有Bean和它们的属性、需要注入的内容。
由于最原始的IoC容器叫做BeanFactory,其他容器都是继承了BeanFactory,因此上一篇我在实例化我的IoC容器的时候用了beanFactory的引用变量名。
BeanFactory是一个接口,实际在使用的时候我们也可以不直接用它,而是用了实现这个接口的两个子类:XmlBeanFactory类、ApplicationContext接口。而这其中用的最多的是ApplicationContext,因为它不仅继承了所有BeanFactory的功能,还扩展了更多实用的功能。
XmlBeanFactory和ApplicationContext的区别并不仅仅体现在功能的数量,还体现在加载Bean的顺序的不同。
BeanFactory和XmlBeanFactory这两个IoC容器在实例化以后并没有马上加载XML里配置过的Bean,而是在真正开始调用getBean方法去获取的时候才加载,而如果这个bean在xml里没有正确配置,那么这时候就会抛出异常。
而ApplicationContext则相反,它在自生被实例化以后,就马上开始加载XML里的所有bean,如果XML配置容器里有一些错误的配置,在这时候就会开始抛出异常了,而不像BeanFactory那样在开始getBean了才抛出异常。
XmlBeanFactory和ApplicationContext各有优劣,虽然一般用ApplicationContext比较常见,但是在一些特殊情况还是需要XmlBeanFactory这种方式,这就要看具体情况具体分析了。
IoC容器的实例化示例代码可以直接看第一章《Spring温故知新(一)Hello,World!》
http://bolide74.iteye.com/blog/993248
这一章比较简单,都是概念性的东西所以也有些枯燥,下一章我将会介绍Spring框架的重中之重,也是它的魅力所在:Spring AOP原理!
下一篇:Spring温故知新(六)AOP面向切面编程 <1>
http://bolide74.iteye.com/blog/1007086
上一篇:Spring温故知新(四)用HashMap写一个自己的Spring IoC简易容器吧!
http://bolide74.iteye.com/blog/1002610
分享到:
相关推荐
3. "spring01quickstart.zip":这是Spring框架的基础快速启动教程,可能涉及到Spring的核心概念,如IoC容器、bean的生命周期、AOP(面向切面编程)等。这部分可能会介绍如何创建第一个Spring应用,包括引入Spring库...
Spring AOP的实现方式有两种:基于代理的AOP和基于ASM字节码操作的AOP。基于代理的AOP适用于接口,它会生成一个动态代理类来执行通知。对于没有接口的类,Spring会使用CGLIB库生成子类来实现AOP。另一种基于字节码...
对于经验丰富的开发者,它则可以帮助温故知新,快速回忆起Spring的各项技术。 首先,Spring的核心组件包括Spring Core和Spring Beans,它们提供了依赖注入(DI)和面向切面编程(AOP)的基础。依赖注入使得对象之间...
7. **Spring Cloud Sleuth和Zipkin**:Sleuth提供了分布式跟踪解决方案,而Zipkin是一个收集和可视化这些跟踪数据的系统,它们可以帮助开发者分析和优化微服务之间的调用链路。 8. **Spring Cloud Stream**:用于...
spring cloud + openshift example
Spring Cloud Config 是一个用于分布式系统配置管理的框架,它允许开发者在远程服务器上集中管理和版本化应用的配置,而不是在每个应用本地存储配置。这种方式在微服务架构中尤其有用,因为多个独立的服务需要共享和...
常用的spring注解大全,适合新手学习、老手温故知新。读懂spring,平步青云。
本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如Kubernetes)的实现方法和设计思路,帮助读者理解如何在实际场景中利用Docker解决...
在这个“温故知新ASP.NET 2.0(C#)”的学习资源中,我们将深入探讨ASP.NET 2.0的关键特性和C#的编程技巧。 首先,ASP.NET 2.0引入了许多改进,以提升开发者的工作效率和应用程序的性能。其中包括: 1. **控件生命...
《中信建设温故知新,从 4G 看 5G》这份资料主要探讨了移动通信技术从第四代(4G)到第五代(5G)的演进过程,以及这一演变带来的技术创新和产业影响。4G 和 5G 作为两个重要的通信时代,它们之间的差异和联系构成了...
初中语文文学讨论现当代文学温故知新
本文将深入探讨这些技术,帮助开发者温故知新,理解它们的功能、工作原理以及如何在实际项目中应用。 ### JSP(JavaServer Pages) JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态内容...
5. 配置文件:配置SpringMVC和Spring的bean,包括数据源、事务管理等。 六、学习与实践 通过TestDemo项目,你可以: 1. 学习SpringMVC注解的使用,如@Controller、@RequestMapping等。 2. 掌握Service层和DAO层的...
中信建设温故知新,从 4G 看 5G.pdf
Spring的核心组件包括IoC容器、AOP、MVC等,用于简化企业级应用开发。 18. **什么是Maven?** Maven是一个项目管理和综合工具,它通过配置文件管理项目的构建、依赖关系和文档生成。 19. **Eclipse和IntelliJ ...
行业报告“温故知新,从4G看5G”为我们揭示了移动通信技术从4G到5G的演进历程、技术变革及其对社会经济的深远影响。这份报告深入探讨了5G的关键特性,包括超高速率、低延迟、大规模连接以及网络切片等,这些都是5G...
根据国际机器人联合会(IFR)的统计数据,2019年全球工业机器人在汽车和电子电气行业的应用占总需求的比例分别为28.15%和23.59%,这两个行业合计占工业机器人需求的半数以上。 2. 美国汽车行业“2mm工程”历史回顾...
在本项目"温故知新,通过学习尚学堂飞机游戏项目,理解Java语言基础知识.zip"中,我们可以深入探讨Java编程语言的基础知识,并结合实际的游戏开发经验来加深理解。这是一个非常适合初学者或者想要巩固Java基础的...
要高效地复习数学,考生需要注意以下五个关键点: 首先,复习应该以课本为基础,遵循教学大纲的要求。这意味着要避免过度学习,选择一套高质量的参考资料就足够了。考生应专注于理解和掌握每一个知识点,而不是一味...