Spring学习笔记之The IoC container

IoC is also known as dependency injection (DI). 这是一个过程?什么样的过程呢?对象自己定义它的依赖关系,这意味着,那些他们依赖的对象,只能通过构造函数参数,工厂方法参数或用set方法在它被创建出来后给予。Srping容器在创建这些对象的时候就注入这些依赖项。控制反转到底是什么东西呢?说白了其实就是以前我想吃饭,我需要自己找饭馆,自己找座位,自己下单子,最后才能吃上饭,现在呢?有了spring的容器,你就不需要去找了,要什么给什么,它都替你搞定,不需要四处找了,全给你包了,这就是控制反转。以前取决于你找没找到,现在取决于你要没要。

SpringIOC容器有两个基础包,哪两个基础包呢?org.springframework.beansorg.springframework.context packages
org.springframework.beans 这个包里边的factory子包下有个BeanFactory ,这个是个顶级接口,定义了一堆getBean方法
org.springframework.context 这包里边有个ApplicationContext ,它继承了两个接口ListableBeanFactory,和HierarchicalBeanFactory,这两个呢?都继承至BeanFactory
ApplicationContext 主要是干什么事情的呢?
1、更好地于AOP进行集成,这个没感受到,不会是假的吧?
2、信息资源处理,国际化?这个主要是因为ApplicationContext 还继承了另外一个接口吧,MessageSource 。
3、事件发布,这个是因为继承了ApplicationEventPublisher。
4、application-layer specific contexts such as the WebApplicationContext for use in web applications.这点指的是这个接口吧?ResourcePatternResolver
又总之了,BeanFactory 提供的是框架的基本配置和基本功能(基本功能有哪些呢?getBean、containsBean、isSingleton、isPrototype、isTypeMatch、getType、getAliases也就这7个基本功能);ApplicationContext 增加了更多的企业级开发功能,基本上就是一个BeanFactory的完全集,也是,继承了那么多接口,这个也是我们经常用到的。
在Spring中,对象是形成应用的基石,而哪些被spring容器管理的对象被称为beans,如果没被管理,那是不是不能称为bean呢?
一个bean是一个被spring容器管理的对象,从他被创建装配到销毁都要被spring容器管理。换句话说,一个bean只是你应用中众多对象中的一个,beans和他们之间的依赖关系,是由容器的元数据来展现的。

时间: 2024-10-07 15:59:27

Spring学习笔记之The IoC container的相关文章

Spring学习笔记(一)

Spring学习笔记(一) Spring核心思想: IOC:  Inversion Of Control (控制反转) / DI: Dependency Injection (依赖注入) AOP: Aspect Oriented Programming (面向切面编程) IOC 1. 简单的应用 Model package com.wangj.spring.model; public class User { private String username; private String pas

不错的Spring学习笔记(转)

Spring学习笔记(1)----简单的实例 ---------------------------------   首先需要准备Spring包,可从官方网站上下载.   下载解压后,必须的两个包是spring.jar和commons-logging.jar.此外为了便于测试加入了JUnit包.   在Myeclipse中创建Java项目.   编写一个接口类,为了简单,只加入了一个方法.   Java代码   1.package com.szy.spring.interfacebean;  

spring学习笔记(19)mysql读写分离后端AOP控制实例

在这里,我们接上一篇文章,利用JNDI访问应用服务器配置的两个数据源来模拟同时操作不同的数据库如同时操作mysql和oracle等.实际上,上个例子可能用来模拟mysql数据库主从配置读写分离更贴切些.既然如此,在本例中,我们就完成读写分离的模拟在web端的配置实例. 续上次的例子,关于JNDI数据源的配置和spring datasource的配置这里不再重复.下面着重加入AOP实现DAO层动态分库调用.可先看上篇文章<spring学习笔记(18)使用JNDI模拟访问应用服务器多数据源实例 >

spring学习笔记(一) Spring概述

博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring的优势在哪里?怎么系统的学习Spring? 一.什么是Spring? Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发. 那有人就会问了,Spring是如何简化开发的? 在传统开发中,一个应用是需

ninject学习笔记一:IOC的实现

这篇文章主要介绍ninject在IOC方面的实现,至于IOC的含义,网络资源很丰富,我这儿就不再赘述了.官方的文档其实挺好的,只是本人英语很烂,看起来比较费劲,下面这些东西是看官方的代码推敲的,我觉得应该能够说明一些问题,希望给和我一样的初学者有一些帮助吧. 这里用一个小案例开始,也就是官方案例的改版. 首先,你要创建项目,并且通过NuGet添加ninject程序集文件 install-package ninject 接着,创建一个武器接口IWeapon,常说攻击性武器,可见咱们这武器也有杀伤力

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

Spring学习笔记(三)

Spring学习笔记(三) AOP 一.使用Annotation方式实现AOP.步骤: xml里加入配置:<aop:aspectj-autoproxy /> <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org

Spring学习笔记--initmethod和构造函数、setter方法的加载顺序

今天学习了一下spring中bean的初始化和销毁,突然想了解一下初始化方法跟构造函数及setter方法注入的执行顺序,记录在此,仅作为学习笔记. 当实例化一个bean时,可能需要执行一些初始化操作来确保该bean处于可用状态.同样地,当不再需要bean时,将其从容器中移除是,我们可以还需要按顺序 执行一些清除工作. package com.zp.chapter2; public class Auditorium { private String name; public void doBefo

【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www.cnblogs.com/ssslinppp/p/4528892.html [Spring学习笔记-MVC-4]返回Json数据-方式2:http://www.cnblogs.com/ssslinppp/p/4530002.html [Spring学习笔记-MVC-3.1]SpringMVC返回Json数据-