目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7095.3k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(572)
赞(0)

4.IoC的具体实现框架有哪些

Java 体系对IoC做具体实现的框架:

  • 轻量级:

    • Spring Framework
    • Guice
    • Pico Container
    • Avalon
    • HiveMind
  • 重量级:

    • EJB

.Net 体现对IoC做具体实现的框架:

  • Spring.net
  • Autofac
  • Castle Windsor
  • Unity

javapinxie

上面这些内容有一些可能十年老Java程序员都没有听说过。对于小伙伴们,我们只要掌握好Java领域,使用最多的IoC实现框架,Spring Framework就可以了。

5.IoC/DI的优缺点

  • 优点:

    • 解耦。对象的实例化、组装、管理完全交给IoC容器。实现对象之间的解耦。
    • 适合中大型项目。对于复杂的项目,里面对象关系可能比较复杂,IoC 容器可以很好的管理这些对象。
  • 缺点:

    • 对象交给容器实例化和注入的过程都是反射(reflect)。反射相对硬编码实例化有一定性能损耗。好在在一些需要频繁实例化的场景中,Spring Framework可以借助单例设计模式来减少bean实例化的次数。
    • 不适合微、小型项目。为了对象解耦,在对象关系不复杂的情况下,额外需要大量的XML配置或注解,增加了工作量。

6. IoC/DI在项目中具体应用场景

IoC/DI 主要作用就是管理对象的实例化和对象之间依赖关系。项目中以前需要自己实例化的层对象、需要自己实例化框架或工具包的入口类都可以交给Spring 容器进行管理。

  • 层对象:Java项目都是分层开发。通过IoC容器管理所有层对象,可以在其他被IoC容器管理的对象随时随地的注入这些层对象。例如:PeopleMapper 接口代理对象、PeopleDaoImpl、PeopleServiceImpl
  • 整合其他技术:可以通过IoC容器管理其他技术的入类。在启动IoC容器时,管理Bean。如:MyBatis中的SqlSessionFactory和SqlSession等

下图中对应普通类PeopleMapper、PeopleServiceImpl这些不同层中普通都可以交给Spring容器进行管理。放入到容器中的对象可以相互直接依赖。但是Servlet只能被Tomcat管理(由Tomcat帮助实例化创建的),所以Spring容器是无法管理Servlet的。但是Servlet可以从Spring容器中取出对象。

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2