Spring核心--IOC
先说说Spring框架
Spring框架
- Spring框架的作用
- Spring 的核心(IOC功能)
- SpringAOP功能
原有的业务流程:请求—>servlet-->service-->多个dao—>jsp
Spring一般将【servlet-->service-->多个dao—>jsp】交给IOC和AOP管理
(管理组件对象,维护对象关系,降低组件耦合度)
4.Spring Web MVC功能:MVC设计 目的:架构一个MVC结构的web程序
注意:(2和3可选择)
5.Spring整合其他技术,例如JDBC,Hibernate,struts,Mybatis等
6.Spring—>整合API-à调用原有技术API()
结构图如下:

SpringIOC
IOC概念:Inversion of Control控制反转或反向控制
控制反转:改变对象的获取方式。之前编码方式采用new构造器方式获取对象;IOC中用由容器创建对象之后注入进来使用。只要修改配置就可以改变对象关系,实现组件间的解耦。(管理创建组件对象,依赖注入信息)
- 管理对象,创建,初始化,释放资源,销毁
2.维护对象关系
SpringIOC应用:
- 搭建SpringIOC开发环境
---引入相关jar包
---在src添加applicationContext.xml
举例:
1) 原始方法获得一个对象

1) SpringIOC创建对象的方法
SpringIOC容器-->管理组件及对象关系
- 创建ApplicationContext对象
- 向applicationContext.xml配置<bean>
- 利用ApplicationContext对象getBean()

1) 在applicationContext.xml中添加 创建对象--->构造方法

ApplicationContext容器对象-->applicationCotext.xml--><bean>

2)静态工厂方法---C2

3)对象工厂方法(封装了对象创建细节)
<bean id=”date” factory-bean=”c2” factory-method=”getTime”></bean>


SpringIOC创建Bean对象的控制
1.控制对象创建方式(使用范围)
在bean元素中使用scope属性控制
可以支持singleton或prototype,默认是singleton
<bean scope=”singleton”>该组件在Spring 中只有一个bean对象</bean>
<bean scope=”prototype”>该组件在Spring 中每次ac.getBean(“id”)都返回一个新的对象</bean>

2.指定对象初始化方法
Java(原始方式使用构造器)
Spring方式:先在org.tarena.bean.ExampleBean中添加init方法,然后用<bean>元素的init-method指定初始化 方法

3.指定对象销毁方法:destroy-method属性
利用<bean>元素的destroy-method指定
满足下面条件才有效:
-----1)组件对象为单利模式
-----2)调用AbstractApplicationContext容器对象的close()方法


4.控制单例对象创建时机
在默认情况下,单例对象是Spring容器创建时实例化;可以使用<bean>元素的lazy-init=true属性将创建的时机推迟到getBean()方法调用时。

IOC维护对象关系
采用注入方式创建对象关系Dependency Injection依赖注入(DI)
依赖注入:set方法注入;构造器注入;
A. set方法注入
1)创建computer类,添加set和get方法

2) 在容器中配置信息



B.构造器注入




C:注入对象




Spring核心--IOC的更多相关文章
- Spring核心 IoC和AOP原理
1. 什么是Spring Spring是一个轻量的Java开源框架,它简化了应用开发,实现基于POJO的编程模型.它的两大核心是:IoC(控制反转),AOP(面向切面编程). 2. IoC控制反转 简 ...
- Spring核心--IOC&AOP
Ioc(控制反转) 所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转. AOP(面向切面编程) ...
- 简单解析Spring核心IOC容器原理
将大体流程解析了一边,具体可以看源代码一个方法一个方法的跟下 XmlBeanFactory的功能是建立在DefaultListableBeanFactory这个基本容器的基础上的,并在这个基本容器的基 ...
- 获取spring的IOC核心容器,并根据id获取对象
public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlAp ...
- 3. Spring 核心之 IOC(控制反转) & DI(依赖注入)
注:此文摘自 http://blog.csdn.net/it_man/article/details/4402245 IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述 ...
- 转 Spring源码剖析——核心IOC容器原理
Spring源码剖析——核心IOC容器原理 2016年08月05日 15:06:16 阅读数:8312 标签: spring源码ioc编程bean 更多 个人分类: Java https://blog ...
- spring两个核心IOC、AOP
Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 ...
- Spring 核心之IOC 容器
核心概念: IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建.依赖的代码,反转给容器来帮忙实现. DI(Dependency Inje ...
- Spring核心原理之IoC容器初体验(2)
本文节选自<Spring 5核心原理> 1 IoC与DI基本概念 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建.依赖,反转给容器来帮忙实现 ...
随机推荐
- API 接口规范
整体规范建议采用RESTful 方式来实施. 1. 协议 API与用户的通信协议,总是使用HTTPs协议,确保交互数据的传输安全. 2. 域名 应该尽量将API部署在专用域名之下. https://a ...
- 在CentOS7下安装jekyll
[root@k8smaster nodejs]# yum install gem ruby ruby-devel -y [root@k8smaster nodejs]# gem sources -l ...
- 关于Iscroll.js 的滑动和Angular.js路由冲突问题
Iscroll主要应用于app移动端开发. 主要代码: window.onload=function(){ var myIscroll=new IScroll(".headerNav&quo ...
- CoolBlog开发笔记第2课:搭建开发环境
教程目录 1.1 CoolBlog开发笔记第1课:项目分析 前言 今天是CoolBlog开发笔记的第2课,我们将要讲解的是开发环境的搭建.俗话说"工欲善其事必先利其器",Djang ...
- windows安装nvm管理node版本
1.卸载原本系统里面的nodejs 2.下载nvm安装包:https://github.com/coreybutler/nvm-windows/releases ---->nvm-setup.z ...
- 小程序之发起请求 wx.request(object)的坑
这是官方的API,然后官方的实例中 wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: { ...
- SyntaxError: Unexpected token < in JSON at position 0 错误
当你使用AJAX时有设定dataType : 'json' 所以在接回传值的时候会以json格式来解析但回传的资料非json格式就会出现这个错误讯息
- explode和implode的运用
$kesu_list=DD('Kesu.Kesu')->kesu_list(); foreach($kesu_list[0] as $key=>$val){ $reason_id_list ...
- abelkhan中的rpc框架
rpc简介:http://www.ibm.com/developerworks/cn/aix/library/au-rpc_programming/index.html 常见的rpc框架有protob ...
- Spring Boot 集成swagger实例
原文:https://github.com/x113773/testall/issues/5 1. 首先添加maven依赖``` <dependency> <groupId>i ...