专题一 IOC
- 接口及面向接口编程
- 什么是 IOC(控制反转):控制权转移,应用程序本身不负责
- Spring的 Bean 配置
- Bean 的初始化
- Spring 的常用注入方式
接口及面向接口编程
接口
- 接口即声明,声明哪些方法对外提供。
- 使用接口沟通,使其能被修改内部而不影响外部其他实体的与其交互的方式(Java8中接口可以拥有方法体)
面向接口编程
- 结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能的接口,各层仅依赖接口而非实现类
- 接口内部的实现变动不影响各层之间的调用,这一点在公共服务中尤为重要
- “面向接口编程”中的“接口”是用于【隐藏具体的实现】和【实现多态性的组件】(2点)
什么是IOC
- IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护
- DI(依赖注入)是其一种实现方式。(获取依赖对象的过程被反转,过程由自身管理变为有 IOC 容器主动注入,即依赖注入)
- 目的:创建对象并且组装对象之间的关系
下图为 Spring 官网给出的 IOC 说明
Spring 的 Bean 配置
配置一般存放于 spring-ioc.xml 文件中
举例1234567"1.0" encoding="UTF-8" xml version=<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" > <bean id="oneInterface" class="com.imooc.ioc.interfaces.OneInterfaceImpl"></bean></beans>
Bean 容器的初始化
- 基础:两个包
- org.springframework.beans
- org.springframework.context
- BeanFactory 提供配置结构和基本功能,加载并初始化Bean
- ApplicationContext 保存了 Bean 对象并在 Spring 中广泛使用
3中初始化方式:ApplicationContext
本地文件
12FileSystemXmlApplicationContext context = newFileSystemXmlApplicationContext("F:/workspace/appcontext.xml");Classpath
12ClassPathXmlApplicationContext context = newClassPathXmlApplicationContext("classpath:spring-context.xml");Web 应用中依赖 servlet 或 Listener
Spring 注入
- Spring 注入指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为
- 常用的两种注入方式
- 设值注入
- 构造注入
设值注入
|
|
注意:需要在 Service 文件中添加 setInjectionDAO 方法。property 中 name 对应 set*
构造注入
|
|
注意:需要在 Service 文件中添加构造方法。name 对应 service 中构造器参数名