一、什么是IOC?
孤傲苍狼总结的理解:
https://www.cnblogs.com/xdp-gacl/p/4249939.html
我的理解(不知道对不对哈,不对的话请各位大神指出):
IOC往大了说是一种设计思想,往小了说就是一个容器。
这个容器里装着所有被标记过的类(最常见的有serviceImpl,daoImpl),然后这个容器里有封装好的方法去控制这些类的实例的创建,再然后我们要用这些类的实例的时候给声明的实例标记一下就可以了。
这种设计思想就是“控制反转”。就是从我们直接管理对象反转成由ioc容器管理对象,我们需要的时候直接从ioc容器里拿对象。
二、为什么要用IOC?
因为IOC实现了组件之间的解耦!!!
三、IOC有啥缺点?
呵呵,感觉除了让新手难以理解外,就没有缺点了。
四、IOC怎么用?
IOC是个容器,里面需要装有我们项目里用到的所有类的实例化对象,这些对象统称为Bean。
IOC容器通过XML配置文件和注解去管理这些Bean。
用到的XML配置文件就是Spring的配置文件,我们配置IOC只需要在里面添加两行信息即可。XML配置信息如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 7 http://www.springframework.org/schema/aop 8 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 9 http://www.springframework.org/schema/context 10 http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 11 12 <description>spring基础配置</description> 13 14 <!-- 提供对@Required,@Autowired以及JSR 250'的@Resource注解的支持 --> 15 <context:annotation-config /> 16 <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --> 17 <context:component-scan base-package="com.test" /> 18 19 </beans>
然后我们在创建类的时候加个注册Bean的注解,在使用类的对象的时候加个使用Bean的注解,就是在用ioc了。
Spring与IOC有关的注解如下:
https://blog.csdn.net/achenyuan/article/details/72786759
注册Bean的常用注解:
@Configuration,@Controller,@Service, @Repository,@Component
使用Bean的常用注解:
@Required,@Autowired,@Qualifier,@Primary,@Bean