spring 的Ioc和DI
来源:互联网 发布:mac显示磁盘 编辑:程序博客网 时间:2024/05/16 04:09
控制反转 inversion of control:
javabean以前由开发人员用代码管理维护,现在对象的实例化和销毁等全部由spring容器管理,实现控制的反转。
这是一种编程思想,就是说一些非核心的代码由框架自动实现管理,开发人员专注于业务逻辑。
依赖注入 dependency of injection :
对象内部需要用到其他javabean对象时,使用注入的方式引入。
理解
将bean的控制权移交给Spring容器 ,由Spring容器实现对 bean的管理。IOC 实现的过程需要对bean属性实现注入,此时就需要用到DI。IOC与DI: 相辅相成、 相互合作,这是同一过程的不同角度的不同描述。Ioc和DI,并不算一种技术,是程序开发中的一种思想,利用spring的控制反转和依赖注入,就不需要那么多代码,也不需要考虑对象间的耦合关系,由容器提供了对对象的管理,降低了代码开发和维护的复杂度。总:降低耦合,简化开发。
Ioc实例化对象的三种方法
1.构造器方法 。 bean必须有空构造器。
2.静态工厂方法。 spring不创建, 由 工厂类提供静态方法创建bean
3.实例化工厂方法 。 工厂类提供方法创建bean
注入的四种方法
1. setter方法注入。 注入的bean需要有相应的setter方法
2. 构造器方法注入。注入的bean需要有相应的带参构造器
3. 静态工厂方法注入
4. 实例化工厂注入。
注意加入循环依赖,不可构造器方法注入,使用setter方法注入
注解方式注入
1.加入context命名空间 2. 加入 <context:annotation-config/> 配置
@Autowired 属性和set方法上 默认按照type类型寻找注入资源,可以使用@Qualifier来制定按照name注入
@Resource 属性和set方法上默认按照name寻找注入资源,没有那么属性按照type注入
自动扫描包: <context:component-scan base-package=“包路径”
不同层使用不同注解
Dao 层: : @Repository
Service 层: : @Service
视图控制层: : @Controller
bean作用域问题
1. singleton 作用域
单例,默认,lazy-init懒加载
提前发现潜在的配置问题
加快程序运行期速率
2. prototype
非单例,每次创建新的bean。
3. web作用域
request作用域
session作用域
bean的生命周期
定义 初始化 使用 销毁
定义: 配置文件
初始化:配置文件中的init-methd 或者 InitializingBean接口
使用:beanFactory ApplicationContext
销毁:配置文件的destroy方法 或者 AbstractApplicationContext的close方法。
- Spring的DI和IoC
- Spring的IOC和DI
- Spring的IOC和DI
- spring的IOC和DI
- spring的IoC和DI
- spring的ioc和di
- Spring的IOC和DI
- Spring的IOC和DI
- spring 的Ioc和DI
- Spring的Ioc和Di
- Spring--IoC和DI
- spring--IoC和DI
- spring IOC和DI
- Spring IOC和DI
- spring IOC 和DI
- Spring IOC和DI
- Spring IoC和DI
- Spring--IOC和DI
- webstorm使用日记_代码测试
- 多态/接口/抽象类
- 关于如何用线段树实现查找区间内第一个小于(大于)某一值x的方法
- js文件保存的相关学习
- opencv学习笔记——滑动条的创建和使用
- spring 的Ioc和DI
- Android 背景图片轮播
- mybatis实现网上商店一(建数据库,写实体类)
- htlm5
- Spring 学习笔记(1)—— 通过一个小例子体会 IoC 的概念
- leetcode练习(566)
- mapreduce程序在yarn上运行的流程
- Caffe安装成功测试(CPU环境下mnist测试)
- 每天回顾linux命令(split)