全面了解Spring IOC
了解String IOC:
- String ioc 全名Ioc—Inversion of Control,即控制反转,这是一种设计思想
- 我们在创建对象的时候,需要new这个对象,那么比如说我们要创建100个对象,这个时候比较麻烦,我们可以交给其他人去做,这个时候我们就用到了Spring的一种特性IOC,他的一个意思就是把对象的创建和控制权力交给了“别人” 这个“别人”就指的是我们所在用到的Spring框架
- Spring ioc 又叫做 “控制反转”
控制:ioc容器控制了对象,或者是外部和资源
反转: 依赖对象的获取被反转了
小结:
依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方 式,实现对象之间的解耦
SpringIOC的优缺点
优点:对象,模块之间的耦合度降低,方便代码的书写,维护性比较好(电脑硬盘和U盘之间的关系)
缺点:由于IOC容器生成对象是通过反射方式,在运行效率上有一定的损耗。
SpringIOC的实现
-
实现原理:
使用反射机制+xml技术执行流程图:
-
我们要使用SpringIOC首先我们要在pom文件里面加入依赖
//Spring依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
- 编写XML文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bookdao" class="com.zcl.dao"></bean>
</beans>
- 添加注解
@Component 注解其他
@Controller 注解控制层
@Service 注解服务层
@Repository 注解dao层
@Resource 和 @Autowired
@Resource 默认按照形参名去查找bean进行注入,按照名称找不到,继续按照类型进行查找。
@Autowired 默认按照类型查找bean进行注入,若找不到,继续按照形参名进行查找。
单例 singleton和 多例 prototype
通过Scope注解选择,默认是单例