ioc

IoC控制反转和DI依赖注入

六眼飞鱼酱① 提交于 2020-02-02 17:55:58
控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非面向对象编程的专用术语。它与依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)并没有关系。 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给 容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么, 为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: 谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC 是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么? 那就是主要控制了外部资源获取(不只是对象包括比如文件等)。 为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就 是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是 被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。 设计模式:

阶段3 2.Spring_03.Spring的 IOC 和 DI_3 spring基于XML的IOC环境搭建和入门

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-02 04:37:21
创建新项目 修改为jar包的方式 把上一个工程内的代码 java下的com复制过来 由于配置文件没有,所以一运行就会报错 factory文件夹整个删除 dao的实现类 这里删除 测试类保留这两行代码 加入spring 的依赖 导入我们的依赖里面就会出现这些jar包 给的资料里面的jar包和我们在项目里面看到的jar包 不大一样 spring把apache的日志集成组件。集成到了spring的jar包里面了。 查看依赖关系 spring必备的核心容器 创建配置文件 文件名字可以随便起。只要不是中文都可以 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\讲义+笔记+资料\主流框架\32.会员版(2.0)-就业课(2.0)-Spring\spring\spring_day01\资料\spring-framework-5.0.2.RELEASE-dist\spring-framework-5.0.2.RELEASE\docs\spring-framework-reference 找到index.html打开 搜索xmls <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www

Spring5

我是研究僧i 提交于 2020-02-02 01:41:57
Spring 1、Spring 1.1、简介 Spring:给软件行业带来了春天! 2002年,首次推出了spring框架的雏形:interface21框架 Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。 作者:Rod Johnson 音乐学的博士 Spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架。 官网:https://spring.io/projects/spring-framework#learn 官方下载地址:https://docs.spring.io/spring/docs/4.3.9.RELEASE/spring-framework-reference/ GitHub:https://github.com/spring-projects/spring-framework 导包: <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> < dependency > < groupId > org.springframework </ groupId > < artifactId > spring-webmvc </ artifactId > <

Spring-DI控制反转和IOC依赖注入

ぃ、小莉子 提交于 2020-02-02 01:04:36
Spring-DI控制反转和IOC依赖注入 DI控制反转实例 IDEAJ自动导入Spring框架 创建 UserDao.java 接口 public interface UserDao { public void say(); } 创建 UserDaoImpl.java 继承 UserDao.java 并重写 say() 方法 public class UserDaoImpl implements UserDao{ @Override public void say() { System.out.println("i am a UserDaoImpl"); } } 创建SpringBean配置文件 ApplicationContext.xml 这个温江,相当于花名册,Spring中的Bean全部需要在这里注册,当遇到实例化某个Bean时,只需要翻开花名册,根据它的 name 来获取Bean的实例。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www

Spring中IOC和AOP的详细解释

∥☆過路亽.° 提交于 2020-02-01 20:19:38
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是典型的工厂模式,通过sessionfactory去注入实例。 AOP就是典型的代理模式的体现。 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI),依赖注入和控制反转是同一个概念。 面向方面编程(AOP)是以另一个角度来考虑程序结构,通过分析程序结构的关注点来完善面向对象编程(OOP)。OOP将应用程序分解成各个层次的对象,而AOP将程序分解成多个切面。spring AOP

Spring 学习 3- AOP

人走茶凉 提交于 2020-02-01 15:33:30
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC是工厂模式参考: 设计模式-工厂模式-场景以及优缺点-目的就是应对变化 (国江面试回答的) AOP代理模式参考: 设计模式-代理模式(Proxy) 参考: 深入理解Java反射+动态代理 IOC就是典型的工厂模式,通过sessionfactory去注入实例。 AOP就是典型的代理模式的体现。 可以参考: Spring 学习 3- AOP 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI)

Spring中IOC和AOP的详细解释

孤街浪徒 提交于 2020-02-01 15:32:27
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是典型的工厂模式,通过sessionfactory去注入实例。 AOP就是典型的代理模式的体现。 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI),依赖注入和控制反转是同一个概念。 面向方面编程(AOP)是以另一个角度来考虑程序结构,通过分析程序结构的关注点来完善面向对象编程(OOP)。OOP将应用程序分解成各个层次的对象,而AOP将程序分解成多个切面。spring AOP

Spring中IOC和AOP的详细解释

浪尽此生 提交于 2020-02-01 15:32:11
我们是在使用Spring框架的过程中,其实就是为了使用IOC,依赖注入,和AOP,面向切面编程,这两个是Spring的灵魂。 主要用到的设计模式有工厂模式和代理模式。 IOC就是典型的工厂模式,通过sessionfactory去注入实例。 AOP就是典型的代理模式的体现。 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。 在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI), 依赖注入和控制反转是同一个概念 。 面向方面编程(AOP)是以另一个角度来考虑程序结构 ,通过分析程序结构的关注点来完善面向对象编程(OOP)。OOP将应用程序分解成各个层次的对象,而AOP将程序分解成多个切面。spring AOP

spring注解开发-IOC

此生再无相见时 提交于 2020-02-01 15:31:40
1. @Configuration, @Bean @Configuration该注解就是用来告诉spring这是配置类 @Bean该注解是用来注册一个bean。类型是返回值的类型,ID默认是用方法名作为ID的;可以在注解中指定ID,@Bean("person") ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class); //MainConfig.class是配置类 Person bean = applicationContext.getBean(Person.class); 以上注解主要是用来取代了配置文件application.xml中对bean的定义 2. @ComponentScan 该注解用于包扫描,主要是取代了下面的配置。主要扫描标记有以下注解的:@Controller、@Service、@Repository,@Component <context:component-scan base-package="com.atguigu" use-default-filters="false"></context:component-scan> 属性一:excludeFilters = Filter[]

Spring IOC 和 AOP

人走茶凉 提交于 2020-02-01 15:26:24
一.  IOC   1. 概念及原理   IOC: Inversion of Control(控制反转)是一种设计思想,就是容器控制应用程序所需要的外部资源的创建和管理,然后将其反转给应用程序.对象及其依赖对象的创建及维护都不需要在应用程序中实现,将其交给IOC容器去管理.传统的开发中,我们自己在对象内部创建依赖对象注入当前对象,完成依赖关系的维护;对于IOC而言,他强调是将主动变为被动,由IOC容器来负责依赖对象的创建和查找,由IOC容器来进行注入组合对象,我们只需要在相关的配置文件中维护对象的依赖关系即可.   DI: Dependency Injecton,即"依赖注入".其实IOC和DI本就是同一个概念的两种不同的表述,应用程序依赖容器提供的外部对象,容器将其依赖的外部资源在运行期注入到应用程序中;某个对象被调用时,其所依赖的对象由容器注入;   2. 优点   第一: 资源集中管理,实现资源的可配置和易管理,降低对象关系维护的复杂度.   第二: 降低了使用资源双方的依赖程度,也就是我们说的耦合度. 二.  AOP   1. 概念   AOP面向切面,是一种编程思想,AOP将软件系统分为两个部分,核心业务和扩展业务,在不改变原有代码的基础上,给核心业务添加扩展功能,即OCP原则.   2. 实现方式   实现AOP的技术,主要分为两大类:   一 是采用动态代理技术