spring IOC
2018-02-01 10:12
369 查看
控制反转(Inversion of Control,英文缩写为IoC)把创建对象的权利交给框架,是框架的重要特征,并非面向对象编程的专用术语。
以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
依赖查找:容器向其管理的组件提供了回调方法,而组件通过这些回到方法与容器进行交互并显示低获取他们的依赖项,这种情况下,一般使用一个查找上下文来访问依赖组件以及容器管理的其他资源
依赖注入:组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection);将依赖关系作为构造函数参数传入的做法称为构造器注入(Constructor Injection) 所谓依赖注入,就是指是容器来负责创建对河和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决字节的依赖。依赖注入的目的主要是为了解耦,体现了一种组合的理论
spring IOC 容器 (applicationcontext) 负责创建bean,并通过容器将功能类bean注入到需要的bean中,spring 提供xml ,注解, Java配置, groovy配置实现bean的创建和注入
@service 在业务逻辑层使用
@repository 在数据访问成(dao层 )使用
@controller 在视图层使用 (springMVC)
注入bean的注解,一般情况下通用
@Autowired spring提供的注解
@inject jsr-330提供的注解
2.使用autowired 将当前的实体bean注入到service中
使用@componentscan ,自动扫描报名下所有使用 @service @component @repository @ controller 的类 并注册为bean
除了使用componentscan 注入bean 还可以通过 annotationconfigapplicationcontext 作为spring容器,接受一个配置类作为参数,并返回配置类的并 通过返回的并来对配置类做操作
@configuration 声明当前类是一个配置类,相当与一个spring配置的xml 文件
@Bean 注解在方法上,声明当前方法返回值为一个bean
以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。
依赖查找:容器向其管理的组件提供了回调方法,而组件通过这些回到方法与容器进行交互并显示低获取他们的依赖项,这种情况下,一般使用一个查找上下文来访问依赖组件以及容器管理的其他资源
依赖注入:组件不做定位查询,只提供普通的Java方法让容器去决定依赖关系。容器全权负责的组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造函数传递给需要的对象。通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection);将依赖关系作为构造函数参数传入的做法称为构造器注入(Constructor Injection) 所谓依赖注入,就是指是容器来负责创建对河和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决字节的依赖。依赖注入的目的主要是为了解耦,体现了一种组合的理论
spring IOC 容器 (applicationcontext) 负责创建bean,并通过容器将功能类bean注入到需要的bean中,spring 提供xml ,注解, Java配置, groovy配置实现bean的创建和注入
声明bean的注解:
@component 组件 没有明确的角色@service 在业务逻辑层使用
@repository 在数据访问成(dao层 )使用
@controller 在视图层使用 (springMVC)
注入bean的注解,一般情况下通用
@Autowired spring提供的注解
@inject jsr-330提供的注解
编写功能类的bean 流程
1.使用@service注解声明当前类是spring管理的一个bean2.使用autowired 将当前的实体bean注入到service中
配置类的流程
@configuration 声明当前类是一个配置类使用@componentscan ,自动扫描报名下所有使用 @service @component @repository @ controller 的类 并注册为bean
除了使用componentscan 注入bean 还可以通过 annotationconfigapplicationcontext 作为spring容器,接受一个配置类作为参数,并返回配置类的并 通过返回的并来对配置类做操作
ConfigurableApplicationContext run = SpringApplication.run(Application.class, args); xxxClass xxx=(xxxXlass) run.getBean("xxxxx");
Java 配置
Java配置是通过@configuration 和 @bean 来实现的@configuration 声明当前类是一个配置类,相当与一个spring配置的xml 文件
@Bean 注解在方法上,声明当前方法返回值为一个bean
相关文章推荐
- Spring的IoC的配置
- spring ioc原理(看完后大家可以自己写一个spring)
- Spring 入门案例(含IOC、AOP、SpringMVC、Spring JDBC)
- spring 8 bean配置--IOC容器中bean的生命周期
- Castle IOC容器与Spring.NET配置之比较
- 自己动手写个spring IOC容器
- 对spring的访问路径以及配置的一些理解(区分spring的IOC与springMVC的IOC)
- (spring-第12回【IoC基础篇】)JavaBean的属性编辑器
- Spring IOC -bean对象的生命周期详解
- Spring Ioc(1)——web中spring容器的启动初步
- 总结一下 Spring的IOC、DI
- Spring AOP 和 IOC 容器入门
- spring容器IOC创建对象<二>
- 仿照spring-boot实现一个简单的ioc容器(一)
- Spring(IOC和DI)
- Spring学习笔记:第三章 IoC中的国际化
- Spring.net 控制反转(IOC)依赖注入(DI)的使用 以及Config文件的配置
- 手写精简版spring 框架后对ioc的体会
- spring-reference-The IoC container的翻译笔记(自己用)
- 笔记——spring基本使用(控制反转IOC、面向切面编程AOP、声明式事务)