ioc

spring相关知识点

淺唱寂寞╮ 提交于 2020-01-14 01:48:25
Spring 概述 ① Spring 是一个开源框架 ② Spring 为简化企业级开发而生,使用 Spring , JavaBean 就可以实现很多以前要靠 EJB 才能实现的功能。同样的功能,在 EJB 中要通过繁琐的配置和复杂的代码才能够实现,而在 Spring 中却非常的优雅和简洁。 ③ Spring 是一个 IOC (DI) 和 AOP 容器框架。 ④ Spring 的优良特性 [1] 非侵入式 :基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API (non-instrusive) [2] 依赖注入 : DI —— Dependency Injection ,反转控制 (IOC) 最经典的实现。 [3] 面向切面编程 : Aspect Oriented Programming —— AOP [4] 容器 : Spring 是一个容器,因为它包含并且管理应用对象的生命周期 [5] 组件化 : Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML 和 Java 注解组合这些对象。 [6] 一站式 :在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上 Spring 自身也提供了表述层的 SpringMVC 和持久层的 Spring JDBC )。 ⑤ Spring

【Spring】IoC概述

China☆狼群 提交于 2020-01-13 21:37:52
Spring框架的核心概念——IoC IoC IoC是Inversion of Control的简写,翻译成汉语就是“控制反转”。IoC并不是一门技术,而是一种设计思想,在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI),DI是实现IoC的一种方法。 在没有IoC设计的场景,没有IoC的程序,我们使用所需的对象时,需手动创建各种对象,对象的创建与对象间的依赖关系完全硬编码在程序中。 有了IoC这样的设计思想,在开发中,意味着将设计好的对象交给容器管理(没有IoC,对象的创建由程序自己控制,有了IoC后将对象的创建转移给第三方),而不再是像传统的编程方式中,在对象内部直接控制对象。 如何理解IoC呢?把握好两块:控制、反转。 1、控制:由谁控制,控制了什么? 由谁控制,由IoC容器来控制,控制了什么?控制了对象 没有IoC的程序中 , 我们使用面向对象编程 , 我们直接在某个对象内部通过new关键字创建另一个对象,是我们主动去创建依赖对象;而IoC的设计思想,是通过专门的对象容器来创建和维护对象。 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的 2、反转:什么是反转,反转了哪些方面? 什么是反转,容器帮开发人员创建依赖对象

IOC理论推导

旧巷老猫 提交于 2020-01-13 19:24:56
IOC理论推导 UserDao 接口 UserDaoImpl 实现类 UserService 业务接口 private UserDao userDao = new UserDaoImpl(); UserServiceImpl 业务实现类 在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改原代码!如果程序代码量十分大,修改一次的成本代价十分昂贵! 现在通过Set接口实现 private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } 之前,程序是主动创建对象,控制权在程序猿手上 使用Set注入后,程序不再具有主动性,而是变成了被动的接受对象 这种思想,从本质上解决了问题,程序猿不需要再去管理对象的创建了.系统的耦合性大大降低,可以更加专注于业务的实现上,这就是IOC的原型 IOC本质 控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法 。没有IoC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,所谓控制反转就是:获得依赖对象的方式反转了。 来源: https:/

IOC 和 DI 简介

对着背影说爱祢 提交于 2020-01-13 07:03:10
传统的方式:传统容器 Ioc容器(把自己也放进去,找) 反转控制:(在a中声明b,ioc知道你要用,就给你主动推送过来了,过来了以后,就要考虑如何去接受他)/////原来的模式是想如何去获取, 接受的方式就是Di(依赖注入),A依赖B 1.通过set方法去接受(调用set方法赋值) 2.构造器的方式接受(在创建对象时利用构造器给他赋值) 来源: CSDN 作者: 试着生存 链接: https://blog.csdn.net/weixin_44050355/article/details/103748659

《熬夜吐血整理》近100道spring全家桶系列面试题整理【已完结!附答案文档】

社会主义新天地 提交于 2020-01-13 03:52:02
Spring 系列面试题整合 大家好,俺依旧是智慧与帅气并存的小木,今天给大家带来的是spring系列面试题完结篇 前言 终于!!! 功夫不负有心,历经3天时间 【加上熬夜四舍五入6天 [手动滑稽]】,小木这边把spring系列的面试题已经整理完毕了,得到了很多大佬的好评,我也是心生欢喜呀 同时也希望各位得到各位的支持,帮我点点赞好评一下是对我最大的支持 最近几天有很多朋友跟我聊到年后准备换工作跳槽,所以最近一段时间小木还是会照常更新面试知识点系列,这里已经把java岗位一写核心的知识点整理成了文档,希望大家加油!! 关于java核心知识点文档分享给大家 注:面试文档领取看文末 上上篇 — spring系列面试题整理题卡(1) 上篇 — spring boot,spring Cloud知识点整理(2) sping系列面试题展示 1、什么是spring? 2、使用Spring框架的好处是什么? 3、Spring由哪些模块组成? 4、核心容器(应用上下文) 模块 5、 BeanFactory – BeanFactory 实现举例 6、XMLBeanFactory 7、解释AOP模块 8、解释JDBC抽象和DAO模块 9、 解释对象/关系映射集成模块 10、解释WEB 模块 11、Spring配置文件 12、什么是Spring IOC 容器? 13、 IOC的优点是什么? 14、

Spring的核心机制

霸气de小男生 提交于 2020-01-13 02:52:40
一、通过xml管理Bean 1、Spring提供了两种类型的IOC容器实现: BeanFactory:IOC容器的基本实现,面向Spring本身 ApplicationContext:是BeanFactory的子接口,面向使用Spring框架的开发者 2、程序主要是通过Spring容器来访问容器中的Bean,ApplicationContext是Spring容器最常用的接口,该接口有如下两个实现类: ClassPathXmlApplicationContext:从类加载路径下搜索配置文件,并根据配置文件来创建Spring容器。 FileSystemXmlApplicationContext: 从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建Spring容器。 3、Bean中属性注入有两种方式 1、属性注入 class属性是bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须有无参数的构造器 属性注入通过setter方法注入Bean的属性或依赖的对象 属性注入使用<property>元素,使用name属性指定Bean的属性名称,value属性或<value>子节点指定属性值构造器注入 2、构造器注入 属性值可以指定参数的位置和参数类型区分构造器 如果字面值包含特殊属性可以使用<![CDATA[字面值]]> 4、<util/>命名空间

IoC之手写运行时注入布局

眉间皱痕 提交于 2020-01-11 23:44:47
系列文章 IoC之手写运行时注入布局 IoC之手写运行时注入控件 IoC之手写运行时注入点击事件 IoC之手写运行时注入通用事件 常规写法 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 所谓运行时注解,就是在代码中没有写setContentView(xxx),而是在运行的时候调用的。 运行时注入 首先我们需要一个注解,用来获取注入布局的id @Target(ElementType.TYPE) // 注解作用域到 类上 // @Retention(RetentionPolicy.CLASS) // 编译时期 @Retention(RetentionPolicy.RUNTIME) // 运行时期 public @interface ContentView { int value() default -1; } 然后我们使用一个工具类,来解析这个注解,并且通过反射调用setContentView方法。 /** * 把布局注入到

C#墨攻IOC

不想你离开。 提交于 2020-01-11 21:39:57
原文叫看《墨攻》理解IOC概念 2006年多部贺岁大片以让人应接不暇的频率纷至沓来,其中张之亮的《墨攻》算是比较出彩的一部,讲述了战国时期墨家人革离帮助梁 国反抗赵国侵略的个人英雄主义故事,恢宏壮阔,浑雄凝重的历史场面相当震撼。其中有一个场景:当刘德华所饰的墨者革离到达梁国都城 下,城上梁国守军问:“来者何人?”,刘德华回答:“墨者革离!”,我们不妨用C#(原文是java,我修改)对这段“城门问对”的场景进行编剧并借由这个例子来理解IoC的内涵。 剧本和饰演者耦合 MoAttack代表《墨攻》的剧本,cityGetAsk()代表“城门问对”这段剧情,LiuDeHua是具体饰演者刘德华: 代码清单1 public class MoAttack { public MoAttack() {} public void cityGateAsk(){ LiuDeHua ldh = new LiuDeHua(); ① 演员直接侵入剧本 ldh.responseAsk("墨者革离!"); } } 我们会发现以上剧本在①处,作为具体饰演者的刘德华直接侵入到剧本中,使剧本和演员直接耦合在一起: 图(1)剧本与演员直接耦合 一个明智的编剧在剧情创作时应围绕故事的角色进行,而不应考虑角色的具体饰演者,这样才可能在剧本投拍时自由地选择任何适合的演员,而非绑定在刘德华一人身上。通过以上的分析

Spring学习笔记-DAY1

ぐ巨炮叔叔 提交于 2020-01-11 17:28:48
1.1 Spring概述 1.1.1什么是spring spring是一个以 IoC 和 AOP 为内核的框架。 IoC是spring的基础。实现的是一种控制。DI(依赖注入)和IoC含义相同。 1.1.2 spring下载及目录结构 1.框架包 Spring 5.2.2 解压后libs目录中jar包分为3类: 以RELEASE.jar结尾的是Spring框架class文件的压缩包 以RELEASE-javadoc.jar结尾的是Spring框架API文档的压缩包 以RELEASE-sources.jar结尾的是Spring框架源文件的压缩包 整个Spring框架由20个模块组成,该目录下Spring为每个模块都提供了这3类压缩包。 有4个Spring基础包,分别对应Spring核心容器的4个模块。 包名 说明 Spring-core-5.2.2.RELEASE.jar 包含Spring框架基本的核心工具类,Spring其他组件都要用到这个包里的类 spring-beans-5.2.2.RELEASE.jar 所有应用都要用到的JAR包,包含访问配置文件、创建和管理Bean以及进行IoC或者DI操作相关的所有类 spring-context-5.2.2.RELEASE.jar Spring提供了在基础IoC功能上的扩展服务,还提供了许多企业级服务的支持,如任务调度、JNDI地位

spring-day01-概述-IOC

岁酱吖の 提交于 2020-01-11 17:27:43
文章目录 一、spring概述 二、spring的EJB的区别(了解) 三、耦合和解耦 四、 解耦代码--自定义IOC(了解) 一、spring概述 spring 的 开源的轻量级框架 spring的两大核心:IOC ,AOP 二、spring的EJB的区别(了解) EJB可以说像是一个Web Service,但也不完全是,比如EJB将编写好的业务组件放置在EJB容器上,然后提供接口给客户端访问;但是功能不仅限如此,EJB标准中提供了很多规范等,而这些规范只有在EJB容器才能正常运行。 EJB是重量级框架 Spring容器取代了原有的EJB容器,因此以Spring框架为核心的应用无须EJB容器支持,可以在Web容器中运行。 Spring容器管理的不再是复杂的EJB组件,而是POJO(Plain Old Java Object) Bean。 Spring轻量级框架 三、耦合和解耦 1. 什么是耦合 模块之间的关联程度, 依赖程度 2. 什么是解耦 降低模块之间的耦合度(依赖关系) 3. 解耦的目的 编译器不依赖(编译没有语法错误),运行期才依赖(运行可能报错) 4. 解耦思路 1) 把全限类名都放到配置文件中 2) 通过工厂帮助创建对象 四、 解耦代码–自定义IOC(了解) spring内所有的类都叫bean对象 在这里插入代码片 来源: CSDN 作者: 树叶子_ 链接: