一、基本概念
依赖注入: 在运行期,由外部容器动态的将依赖的对象注入到组件中(实例化所有的bean,然后按需注入到组件。)
控制反转:依赖对象的创建和管理(控制权)转移给了外部容器,这样可以很方便的通过容器的配置来管理对象。
容器:可以简单的想象为一个存放了一些单例的实例化对象(bean)的容器,你可以通过容器接口从容器里面拿你需要的对象实例。
二、Spring的主要特性
1. 降低组件之间的耦合度,实现软件各层之间的解耦。
2. 可以方便的使用容器提供的众多服务:事务管理服务、消息服务、JMS服务、持久化服务等等。
3. 容器提供单例模式。
4. 容器提供众多的辅助类,加速开发,如jdbcTemplate
三、容器对象的实例化过程
1. 实例化容器
在类路径(或文件路径)下寻找配置文件来实例化容器:ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
实例化容器后,在配置文件声明过的bean或标记为@autowired、@resource的类都会有实例化的单例存放在容器中。
2. 获取容器中的对象
有两种方法:一是通过容器上下文(ApplicationContext)的getBean方法显式的获取实例化对象;二是在应用类中(比如包含main方法的类)中,注解声明这个属性为自动装配。自动装配意味着不需要在配置文件中配置应用类的这个属性,而是自动的在调用应用类时,就去扫描容器,byType或byName找到容器中存放的单例,并赋给这个标注的属性。
分享到:
相关推荐
spring学习笔记
### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...
### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...
Spring学习笔记( spring视频笔记)
这份"Spring学习笔记+学习源码.zip"资源包含了深入学习Spring及其相关技术的知识点,以及实践代码,对提升Spring技能将大有裨益。 首先,我们来详细讨论Spring框架的主要组件和功能: 1. **依赖注入(Dependency ...