Spring IOC原理详解以及实现IOC的多重实现方式

        控制反转IOC:Spring通过一种称作控制反转的技术来更好的实现低耦合。那么什么是控制反转呢?在了解控制反转之前我们先要了解IOC容器怎么管理对象,通常我们直接在对象内部通过new进行对象的创建,是程序主动去创建依赖对象;而IOC是专门有一个容器来管理、控制、创建这些对象,以及控制外部资源获取;传统应用程序是有我们自己再对象中主动控制去直接获取依赖对象。而反转则是由容器来帮忙创建及注入依赖对象;那为什么要反转呢?由容器帮我们查找及注入依赖对象,对象是被动的接受依赖对象。这就是所谓的控制反转。应用IOC,一个对象依赖其他对象会通过被动的方式传递进来,而不是这个对象自己去创建或者查找依赖对象。容器会在对象初始化时不等对象请求就主动将依赖传递给它。

IOC实现方式

    【1】使用xml方式实现ioc    --常用

<?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.zhangguo.Spring051.ioc01.BookDAO"></bean>
</beans>

    【2】使用注解 --常用

        注:如果内容比较多使用配置会花费很多时间降低开发效率,通过注解可以减轻工作量,但是注解后修改要麻烦一些,耦合度会增加,应该根据需要选择合适的方法。

在类上增加一个@Component,在类的开头使用了@Componet注解,他可以被Spring容器识别,启动Spring后,会自动把它转成容器管理的Bean。

除了@Component外,Spring提供了3个等效的注解,分别对应于DAO层、Service层和Controller进行注解。

    (a):@Repository用于对DAO实现类进行注解;

    (b):@Service用于对业务层注解,他是与@Component最相近的一个;

    (c):@Controller用于标注在控制层;

        


猜你喜欢

转载自blog.csdn.net/qq_19167629/article/details/80435627