IOC
IOC的概念是什么?
控制反转,反转的是什么,反转的是对象的创建权,原来是自己亲历亲为,自己创建,现在交给底部框架,把对象创建完,放到容器里面,用的时候只管用就行了。
作用是什么?
实现解耦,解的是什么耦,解的对象的创建和对象使用之间的耦合性。
怎么实现的呢?
通过在实现类上加入@Component注解,@Component是一个基本的注解,我们称之为组件,后期会有语义化:就比如service头上加@Service,dao的头上加@Repository,加的时候加在实现类上,不能加载接口上,要把实现类的对象放入容器里,接口不能创建对象。
这就是IOC
DI
DI又叫依赖注入
依赖注入
依赖注入,就是IOC中所需的资源,可以注入进来。
怎么实现的呢?
1、通过注解@Autowired // 自动装配
根据类型配备依赖资源,当同一类型有多个时,报错
@Autowired 接口类型 变量名;
2、@Primary // 设置优先
一个接口有多个实现类,加在其中一个实现类的头上,该类设为优先,自动注入优先注入该实现类。
3、@Autowired + @Qualifier("bean的名字,首字母小写") // 帮助@Autowired设置使用的实现类
IOC中一个接口有多个实现类注入,使用@Qulifier指定要使用的实现类
@Qualifier不能单独使用
4、@Resource(name = "bean的名字")