持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情
简介
spring是一个分层的java SE/EE应用一站式的轻量级开源框架。其核心是IOC与AOP。
Ioc:将对象之间的依赖关系交给spring提供的ioc容器进行处理,方便解耦
AOP:方便进行面向切面编程。
体系结构
数据集成模块
- 事务模块:用于管理事务,支持声明式与编程式管理
- jdbc模块:提供了jdbc模板,还可以享受spring事务管理
- orm模块:提供“对象-关系”映射框架的无缝集成,包括hibernate,mybatis,jpa等。
- oxm模块:提供一个对象Object与xml文件的映射实现,将java对象与xml互相映射。
- jms模块:java message service,提供一套“消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信
Web模块
提供了web应用的功能如文件上传、FreeMarker等。建立在ApplicationContext模块之上.Spring可以整合struts2等mvc矿机,叶提供了Spring Mvc框架。
测试模块
支持非容器依赖的编程方式进行几乎所有的测试工作,支持JUnit和TestNG等测试框架。
IOC与DI
IoC控制翻转与DI依赖注入
传统代码开发中,当需要使用某个对象的方法时,需要我们自通过new创建一个对象来调用方法,我们此时是主动创建对象。而IoC是将我们主动创建对象的控制权交给IoC容器,此时由容器帮忙创建并注入依赖对象,我们的程序被动接受IoC容器创建的对象,控制权反转了,所以叫IoC控制反转。
DI依赖注入可以更好的帮我们理解IoC。即让第三方来实现注入,以移除我们类与需要使用的类之间的依赖关系。总的来说,IoC是目的,DI是手段,创建对象的过程往往意味着依赖的注入。我们为了实现IoC,让生成对象的方式由传统方式(new)反转过来,需要创建相关对象时由IoC容器帮我们注入(DI)。
简单的说,就是我们类里需要另一个类,只需要让Spring帮我们创建 ,这叫做控制反转;然后Spring帮我们将需要的对象设置到我们的类中,这叫做依赖注入