1、什么是IOC?
IOC的全英文名是:Inversion Of Control ,直译过来就是控制反转,控制反转是把传统上由程序代码直接操控对象(new对象)的调用权交给ioc容器,由容器来实现对象的创建,依赖,销毁,初始化等等。
2、什么是 Spring IOC 容器?
Spring 框架是一个 IOC 容器的实现,DI 依赖注入是它的实现的一个原则,提供依赖查找和依赖注入两种依赖处理,管理着 Bean 的生命周期。Spring 还提供了 AOP 抽象、事件抽象、事件监听机制、SPI 机制、强大的第三方整合、易测试性等其他特性。
3、IOC 容器的作用?
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI)装配对象、配置对象)并且管理这些对象的整个生命周期。
简单的来说就是:
我们自己new一个对象,可能会导致程序耦合度过高,后期可能维护不便。引入IOC,将创建对象的控制权交给Spring的IOC容器;如果要去使用对象,通过DI(依赖注入)@Autowired注解 自动注入,就可以使用对象了!
4、IOC 和 DI 的区别?
DI 依赖注入不完全等同于IOC ,更应该说 DI 依赖注入是 IOC 的一种实现方式或策略。
5、IOC的优点有哪些?
6、Spring IoC 的实现机制是什么?
Spring 中的 IoC 的实现原理就是工厂模式加反射机制。
工厂相对应的就是beanfactory的getBean()方法,反射就是Spring底层实例化对象所采用的机制
实现代码示例:
interface fruit{
void eat();
}
class Apple implements fruit {
@Override
public void eat() {
System.out.println("Apple");
}
}
class Orange implements fruit {
@Override
public void eat() {
System.out.println("Orange");
}
}
class Factory {
public static fruit getInstance(String ClassName) {
fruit f = null;
//通过反射创建对象
try {
// 相当于Spring中new了一个ClassPathXmlApplicationContext
f = (fruit)Class.forName(ClassName).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return f;
}
}
class Test {
public static void main(String[] args) {
//getInstance时静态的,直接调用即可Factory.getInstance()
fruit f = Factory.getInstance("Apple");
if(f != null)
f.eat();
}
}
//输出 Apple
注意点:
源码下载:https://gitee.com/charlinchenlin/koo-erp
原文地址:https://blog.csdn.net/lovoo/article/details/130461103
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_15475.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!