收藏私塾在线
 

欢迎您来到私塾在线网!   

请登录! 

免费注册 


xiaoye2017的笔记
状态: 离线
人气:175
访问用户量:2
笔记经验:
总积分:110
级别:普通会员
搜索本笔记
ta的交流分类
ta的交流主题贴(0)
ta的所有交流贴(0)
ta的全部笔记
全部笔记(1)
未分类笔记(0)
课程笔记(1)
存档
2017-08(1)

2017-08-01 10:28:58
Spring3开发实战-独家视频教程-视频教程学习笔记
浏览(175)|评论(10)   交流分类:学习问题讨论|笔记分类: 课程笔记

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 视频教程学习笔记
视频课程地址:Spring3开发实战-独家视频教程
当前播放的视频地址:IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程

类的设计原则:加强内聚,松散耦合--》如何做到?
按名词:依赖关系
按动词:依赖的动作-->注入

正向:现在程序的方向,加入对象A要调用B对象,现在是在A里面直接创建B对象,然后调用

public class A{
public void t1(){
new B().t2();
}
}
public class B{
public void t2(){

}
}
简而言之,就是程序需要什么,就由程序主动去获取需要的资源,这个方向就是正向。
public class C{
public void t3(){
A a = new A3(){

}
public class Factory{
public void t3(){
A a = new A3();
}
}
public class Factory{
public static A

}

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 笔记
类的设计原则:加强内聚,松散耦合--》如何做到?
按名词:依赖关系
按动词:依赖的动作-->注入

正向:现在程序的方向,加入对象A要调用B对象,现在是在A里面直接创建B对象,然后调用

public class A{
public void t1(){
new B().t2();
}
}
public class B{
public void t2(){

}
}
简而言之,就是程序需要什么,就由程序主动去获取需要的资源,这个方向就是正向。
public class C{
public void t3(){
A a = new A3(){

}
public class Factory{
public void t3(){
A a = new A3();
}
}
public class Factory{
public static A

}

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 笔记
类的设计原则:加强内聚,松散耦合--》如何做到?
按名词:依赖关系
按动词:依赖的动作-->注入

正向:现在程序的方向,加入对象A要调用B对象,现在是在A里面直接创建B对象,然后调用

public class A{
public void t1(){
new B().t2();
}
}
public class B{
public void t2(){

}
}
简而言之,就是程序需要什么,就由程序主动去获取需要的资源,这个方向就是正向。
public class C{
public void t3(){
A a = new A3(){

}
public class Factory{
public void t3(){
A a = new A3();
}
}
public class Factory{
public static A

}

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 笔记
类的设计原则:加强内聚,松散耦合--》如何做到?
按名词:依赖关系
按动词:依赖的动作-->注入

正向:现在程序的方向,加入对象A要调用B对象,现在是在A里面直接创建B对象,然后调用

public class A{
public void t1(){
new B().t2();
}
}
public class B{
public void t2(){

}
}
简而言之,就是程序需要什么,就由程序主动去获取需要的资源,这个方向就是正向。
public class C{
public void t3(){
A a = new A3(){

}
public class Factory{
public void t3(){
A a = new A3();
}
}
public class Factory{
public static A

}

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 笔记
类的设计原则:加强内聚,松散耦合--》如何做到?
按名词:依赖关系
按动词:依赖的动作-->注入

正向:现在程序的方向,加入对象A要调用B对象,现在是在A里面直接创建B对象,然后调用

public class A{
public void t1(){
new B().t2();
}
}
public class B{
public void t2(){

}
}
简而言之,就是程序需要什么,就由程序主动去获取需要的资源,这个方向就是正向。
public class C{
public void t3(){
A a = new A3(){

}
public class Factory{
public void t3(){
A a = new A3();
}
}
public class Factory{
public static A

}

IoC/DI入门,是什么、能干什么,分析IoC/DI的思想演变进程 笔记
参与者:(多个)应用程序和spring

IOC/DI的基本思想:
1.把程序之间的依赖关系去掉
2.把程序对象设置到IOC/DI容器中,作为bean
3.由IOC/DI容器来管理bean的创建、实例化
4.由IOC/DI容器来把bean之间的关系注入到需要这些关系的对象里面

简而言之,就是对象之间的依赖全部去掉,然后由IOC/DI容器来管理对象和对象之间的依赖关系
功能:就是实现了对象之间的松散耦合

控制什么?
IOC/DI容器控制对象本身的创建、实例化
IOC/DI容器控制对象之间的依赖关系

为何叫反转(对应于正向)?
因为现在应用程序不能“主动”去获取外部资源了,而是“被动”等待IOC/DI容器给他“注入”它所需要的资源,所以称之为反转

哪些方面反转?
1.创建对象
2.程序获取资源(比如:依赖的其他对象,依赖关系)的方式

为何需要反转?
1.引入容器过后,体系更为松散,而且管理更有序
2.类之间真正实现了松散耦合,使得开发、测试、维护、升级都变得容易了。
IOC/DI并没有帮助我们实现任何的业务功能呢个,原本该由应用实现的功能,还是由应用自身完成。

什么是依赖(按名词(依赖关系)、动词(依赖的动作-->注入)理解)
依赖(动作)于注入依赖关系

应用程序依赖于IOC/DI容器

为什么需要依赖呢?
因为反转了过后,应用程序依赖的资源都在IOC/DI容器里面

依赖什么东西?
应用程序依赖于IOC/DI容器,依赖IOC/DI容器为它注入所需要的资源(比如:依赖关系)

依赖注入依赖:应用程序依赖于IOC/DI容器

深化理解IoC/DI的思想,总结IoC/DI的本质 笔记
11.谁注入于谁?
IOC/DI容器注入于应用程序。
12.注入什么东西?
注入应用程序需要的外部资源。比如:依赖关系
13.为何要注入?
因为程序要正常运行,需要这些资源。
14.依赖注入和控制反转是同一个概念吗?
不是
其实描述的是同一件事,但是是从不同的角度在说。
控制反转:从IOC/DI容器角度来说。
依赖注入:从应用程序的角度在说。
15.一句话描述
控制反转的描述:IOC/DI容器反过来控制应用程序,控制应用程序所需要的外部资源(比如:依赖关系)
依赖注入的描述:应用程序依赖IOC/DI容器,依赖它注入所需要的外部资源。

参与者:应用程序(对歌对象)和spring

16.IOC/DI是什么?
IOC:就是使用IOC/DI容器反过来控制应用程序所需要的外部资源,这样一种程序的开发思想。
DI:就是应用程序依赖IOC/DI容器来注入所需要的外部资源,这样一种程序的开发思想。

17.能做什么?
松散对象的耦合
18.怎么做?
可以自己实现
使用Spring,spring里面有实现好的IOC/DI容器,这样就不用自己去实现了。
19.用在什么地方?
凡是程序里面需要使用到外部资源的情况,都可以考虑使用哪个IOC/DI容器。
比如:工厂类,现在就可以不要了。

20.强调一下外部资源
对于一个类来说,所谓外部资源,就是指在自己类的内部不能得到或实现的东西。比如:在类里面要读取一个配置文件,那么,这个配置文件就相当于这个类的外部资源。
又比如:A类里面要调用B类,那么对于A类来讲,B类就是外部资源。

应用程序从主动变为了被动
是从设计理念

IOC容器
简单的理解就是:实现IOC思想,并提供对象创建、对象装配以及对象生命周期管理的软件就是IOC容器。
IOC理解
1.应用程序无需主动new对象:而是描述对象应该如何被创建即可
IOC帮你创建,即被动实例化。
2.应用程序不需要主动装配对象之间的依赖关系,而是描述需要哪个服务,IOC容器会帮你装配(即负责将它们关联在一起),被动接收装配:
3.主动变被动,体现好莱坞法则:别打电话给我们,我们会打电话给你。
4.体现迪米特法则(最少知识原则):应用程序不知道依赖的具体实现,只知道需要提供某类服务的对象(面向对象编程):并松散耦合,一个对象应当对其他对象有尽可能少的了解,不和陌生人(实现)说话。
5.是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则。

使用IOC/DI容器开发需要改变的思路
1.应用程序不主动创建对象,但要描述创建他们的方式。
2.在应用程序代码中不直接进行服务的装配,但要描述哪一个组件需要哪一项服务,由容器负责将这些专配在一起。

也就是说;所有的组件都是被动的,组件初始化和装配都由容器负责,应用程序只是在获取相应的组件后,实现应用的功能即可。

提醒一点
IOC/DI是思想,不是纯实现技术,IOC是框架共性,只是控制权的转移,转移到框架,所以不能因为实现了IOC就叫IOC容器,而一般除了实现了IOC外,还具有DI功能的才叫IOC容器,因为容器除了要负责创建并装配组件关系,还需要管理组件生命周期。
精品视频课程推荐

Spring3开发实战-独家视频教程
从零到精通Spring3的开发知识;IoC/DI的思想、IoC/DI的运行流程、IoC/DI的开发指导、AOP的思想、AOP的运行流程、AOP应用的设计、Spring对JDBC和Hibernate的支持、Spring的事务、SSH的集成应用

ssh+jbpm项目(某集团OA)视频教程
达到能综合使用Struts2+Spring3+Hibernate3+Jbpm4来进行实际项目开发的能力。 包括:ssh和jbpm的整合;数据字典;通用DAO(Spring+Hibernate+泛型+反射+SpEL+模板方法模式);自动生成UUID的加强版;分层开发、SSH联合的基本开发;翻页的taglib;示范真实值和表现值,数据参照的实现;文件上传下载;主子表操;登录验证码;登录控制的拦截器

spring 注解零配置视频教程
spring项目中使用注解来代替xml配置,包括IoC、AOP、事务等相关注解

深入浅出学Spring Web MVC视频教程
系统、完整的学习Spring Web MVC开发的知识。包括:Spring Web MVC入门;理解DispatcherServlet;注解式控制器开发详解;数据类型转换;数据格式化;数据验证; 拦截器;对Ajax的支持;文件上传下载;表单标签等内容;最后以一个综合的CRUD带翻页的应用示例来综合所学的知识

深入浅出学Spring Data JPA视频教程
系统、完整的学习Spring Data JPA开发的知识。包括:Spring Data JPA入门;JpaRepository基本功能 ;JpaRepository的查询;客户化扩展JpaRepository;Specifications查询。

浏览(175)|评论(10)   交流分类:学习问题讨论|笔记分类: 课程笔记

评论(10)
请登录后评论 登录

关于我们 | 联系我们 | 用户协议 | 私塾在线服务协议 | 版权声明 | 隐私保护

版权所有 Copyright(C)2009-2012 私塾在线学习网