Spring的控制反转和依赖注入
Spring的官网:https://spring.io/
Struts与Hibernate可以做什么事?
Struts,
Mvc中控制层解决方案
可以进行请求数据自动封装、类型转换、文件上传、效验…
Hibernate,
持久层的解决方案;
可以做到,
把对象保存到数据库,
从数据库中取出的是对象。
传统的开发模式
基于mvc模式进行项目开发;
基于mvc的项目框架结构:
Entity / dao / service / action
为什么引入Spring:
思考:
1. 对象创建创建能否写死?
2. 对象创建细节
对象数量
action 多个 【维护成员变量】
service 一个 【不需要维护公共变量】
dao 一个 【不需要维护公共变量】
创建时间
action 访问时候创建
service 启动时候创建
dao 启动时候创建
3. 对象的依赖关系
action 依赖 service
service依赖 dao
=======================================================
总结:
spring就是解决上面的问题的!
简单来说,就是处理对象的创建的、以及对象的依赖关系!
1:框架设计:
1.1:侵入式设计:引入了框架,对现有的类的结构有影响,即需要实现或者继承某些特定类
例如:Struts2框架
1.2:非侵入式设计:引入了框架,对现有的类结构没有影响
例如:Hibernate框架,Spring框架
2:Spring框架
Spring概述:可以解决对象创建以及对象之间依赖关系的一种框架。且可以很好的和其他框架一起使用,
如Spring和Hibernate,Spring和Struts2,其实通俗点讲Spring就是起到一种整合的作用,
如是一座桥梁,连接了Hibernate和Struts2;
2.1:控制反转(Inversion of Confrol):
对象的创建交给外部容器完成,这个就叫做控制反转
2.2:依赖注入(dependency injection):
处理对象的依赖关系
2.3:控制反转和依赖注入的区别:
控制反转:解决对象创建的问题[对象创建交给别人即ioc容器];
依赖注入:在创建完对象后,对象的关系的处理就是依赖注入[通过set方法依赖注入];
2.4:AOP面向切面编程
面向切面编程:切面,简单的说来可以理解为一个类,由很多重复代码形成的类。
例如:事务,日志,权限。
3:Spring提供了一站式解决方案:
3.1:SpringCore:
Spring的核心功能,IoC容器,解决对象创建以及依赖关系
3.2:SpringWeb:
Spring对web模块的支持:
(1)可以与struts2整合,让struts2的action的创建交给Spring
(2)Spring mvc模式
3.3:SpringDao:
Spring对jdbc操作的支持[JdbcTemplate模板工具类]
3.4:SpringORM:
Spring对orm的支持:
(1):既可以与Hibernate整合
(2):也可以使用Spring对Hibernate操作的封装
3.5:SpringAOP:
面向切面编程
3.6:SpringEE:
Spring对JavaEE其他模块的支持
框架啊,东西多而杂,耐着性子慢慢消化~~~
Spring的控制反转和依赖注入的更多相关文章
- 简单了解Spring的控制反转和依赖注入
浅谈控制反转(Inversion of Control,IOC) 我们首先先来了解一下控制二字,也就是在控制"正"转的情况下,在任何一个有请求作用的系统当中,至少需要有两个类互相配 ...
- Spring理论基础-控制反转和依赖注入
第一次了解到控制反转(Inversion of Control)这个概念,是在学习Spring框架的时候.IOC和AOP作为Spring的两大特征,自然是要去好好学学的.而依赖注入(Dependenc ...
- spring(3)------控制反转(IOC)/依赖注入(DI)
一.spring核心概念理解 控制反转: 控制反转即IoC (Inversion of Control).它把传统上由程序代码直接操控的对象的调用权交给容器.通过容器来实现对象组件的装配和管理. 所谓 ...
- Spring、控制反转与依赖注入(概念)
Spring 一个开源的控制反转(Inversion of Control ,Ioc)和面向切面(AOP)的容器框架. 主要目的:简化开发 控制反转(Inversion of Control ,Ioc ...
- 如何通俗的理解spring的控制反转、依赖注入、面向切面编程等等
之前一直不理解spring的一些基础特性是什么意思,虽然网上的解释也很多,但是由于我比较笨,就是看不懂,知道最近才稍微了解,下面就以通俗讲解的方式记录下来. 前言 假设我是一个没有开店经验的小老板,准 ...
- 【SSH】——spring的控制反转和依赖注入
spring是一个轻量级的容器框架,主要是为了使企业的开发变得简单.高效.无论是从大小还是开销来讲,他都可以算是轻量级的,也是非侵入性的. 下图是spring的框架示意图,说到spring,就不得不提 ...
- Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)
关于依赖注入, 这篇博文写的非常简单易懂. https://github.com/android-cn/blog/tree/master/java/dependency-injection 此外, 博 ...
- Spring 1 控制反转、依赖注入
1.1 Spring的核心是控制反转(IoC)和面向切面(AOP) 学习spring之前的开发中通过new创建一个对象,有了spring之后,spring创建对象实例-IoC控制反转,之后需要实例对象 ...
- spring IOC --- 控制反转(依赖注入)----简单的实例
IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的 ...
随机推荐
- The string "--" is not permitted within comments【转】
ibatis中SAXParseException异常:The string "--" is not permitted within comments 这个异常是说sqlmap里面 ...
- 检验两个随机序列的beta系数
检验两个随机序列的beta系数 代码 def test_beta(loops=10): ''' 检验两个随机序列的beta系数 :loops: int, 循环次数, 每次循环会产生两个随机序列, 然后 ...
- vue.js初始学习笔记&vue-cli
笔记一下: vue.js 安装,参考: http://www.cnblogs.com/wisewrong/p/6255817.html (vue-cli) http://www.cnblogs.com ...
- java 多线程断点下载功能
import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.io.Rand ...
- Linux cache 缓存过大
linux cache 缓存过大 : 除重启服务 之外:直接释放内存方式之一: 修改配置释放cached内存: echo > /proc/sys/vm/drop_caches
- [C++]线性链表之顺序表<二>
/* @content 线性链表之顺序表 @date 2017-3-21 1:06 @author Johnny Zen */ /* 线性表 顺序表 链式表[带头指针/不 ...
- SQL Server 备份还原
SQL Server支持三种备份方式 完全备份: 差异备份 事务日志备份 一般备份方式为,完全备份/每周,差异备份/每天,事务日志备份/按分钟计,这样可确保备份的高效性和可恢复性. 1. 完全备份 备 ...
- yum和rpm的区别
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时.Yum(全称为 Y ...
- 推荐系统之协同过滤的原理及C++实现
1.引言 假如你经营着一家网店,里面卖各种商品(Items),有很多用户在你的店里面买过东西,并对买过的Items进行了评分,我们称之为历史信息,现在为了提高销售量,必须主动向用户推销产品,所以关键是 ...
- windows环境用python修改环境变量的注意点(含代码)
1.部分环境变量字段需要保留原来的值,只是做添加,不可以替换 2.Path和PATH对于python来说是一样的,也就是说存在名为Path的环境变量时,添加PATH的环境变量,会覆盖原有的Path环境 ...