Spring介绍

官网地址:https://spring.io/projects/spring-framework#overview

spring5中文手册:https://github.com/DocsHome/spring-docs/blob/master/SUMMARY.md

压缩包下载地址:https://repo.spring.io/list/libs-snapshot-local/org/springframework/spring/

源码地址:https://github.com/spring-projects/spring-framework

Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languages on the JVM, and with the flexibility to create many kinds of architectures depending on an application’s needs. As of Spring Framework 5.1, Spring requires JDK 8+ (Java SE 8+) and provides out-of-the-box support for JDK 11 LTS. Java SE 8 update 60 is suggested as the minimum patch release for Java 8, but it is generally recommended to use a recent patch release.

Spring supports a wide range of application scenarios. In a large enterprise, applications often exist for a long time and have to run on a JDK and application server whose upgrade cycle is beyond developer control. Others may run as a single jar with the server embedded, possibly in a cloud environment. Yet others may be standalone applications (such as batch or integration workloads) that do not need a server.

翻译:

Spring Framework 是一个轻量级的解决方案,可以一站式构建企业级应用。然而,Spring 是模块化的,允许你使用的你需要的部分,而不必把其余带进来。你可以在任何框架之上去使用IOC容器,但你也可以只使用 Hibernate 集成代码 或 JDBC 抽象层。Spring Framework 支持声明式事务管理,通过 RMI 或 Web 服务远程访问你的逻辑,并支持多种选择持久化你的数据。它提供了一个全功能的 MVC 框架,使您能够将 AOP 透明地集成到您的软件。

Spring 的设计是非侵入性的,也就是说你的领域逻辑代码一般对框架本身无依赖性。在你的集成层(如数据访问层),在数据访问技术和 Spring 的库一些依赖将存在。然而,它应该很容易从你的剩余代码中q分离这些依赖。

Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。

Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发

Spring可以做很多事情,它为企业级开发提供给了丰富的功能,但是这些功能的底层都依赖于它的两个核心特性,也就是依赖注入(dependency injection,DI)和面向切面编程(aspect-oriented programming,AOP)

简略核心解释

spring是一个轻量级的开源框架。

spring为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题

spring是一个IOC和AOP的容器框架。

    IOC:控制反转

    AOP:面向切面编程

    容器:包含并管理应用对象的生命周期

Spring的优势特点(https://www.cnblogs.com/antLaddie/p/12813251.html#_label0

1:方便解耦,简化开发(IOC)

  Spring内部提供IOC容器,可以将对象间的依赖关系交由Spring进行控制,避免类与类之间的过度依赖而产生程序耦合。用户不必再编写单例模式类、属性文件解析等底层的代码需求,Spring IOC可以让我们可以更专注与上层业务逻辑代码

2:AOP 编程的支持

  通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。

3:声明式事务的支持

  可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务的管理,提高开发效率和质量。

4:方便程序的测试

  可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。

5:方便集成各种优秀框架

  Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的直接支持。

6:降低 JavaEE API 的使用难度

  Spring 对 JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些 API 的使用难度大为降低。

7:Java 源码是经典学习范例

  Spring 的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对 Java 设计模式灵活运用以及对 Java 技术的高深造诣。它的源代码无意是 Java 技术的最佳实践的范例。

spring的模块划分图

模块解释:

Test:Spring的单元测试模块

Core Container:核心容器模块

AOP+Aspects:面向切面编程模块

Instrumentation:提供了class instrumentation支持和类加载器的实现来在特定的应用服务器上使用,几乎不用

Messaging:包括一系列的用来映射消息到方法的注解,几乎不用

Data Access/Integration:数据的获取/整合模块,包括了JDBC,ORM,OXM,JMS和事务模块

Web:提供面向web整合特性

IOC(Inversion of Control):控制反转

基本概念

IoC is also known as dependency injection (DI). It is a process whereby objects define their dependencies (that is, the other objects they work with) only through constructor arguments, arguments to a factory method, or properties that are set on the object instance after it is constructed or returned from a factory method. The container then injects those dependencies when it creates the bean. This process is fundamentally the inverse (hence the name, Inversion of Control) of the bean itself controlling the instantiation or location of its dependencies by using direct construction of classes or a mechanism such as the Service Locator pattern.

IOC与大家熟知的依赖注入同理,. 这是一个通过依赖注入对象的过程 也就是说,它们所使用的对象,是通过构造函数参数,工厂方法的参数或这是从工厂方法的构造函数或返回值的对象实例设置的属性,然后容器在创建bean时注入这些需要的依赖。 这个过程相对普通创建对象的过程是反向的(因此称之为IoC),bean本身通过直接构造类来控制依赖关系的实例化或位置,或提供诸如服务定位器模式之类的机制。

人话:

IOC是一种设计思想,在Java开发中,将你设计好的对象交给容器控制,而不是显示地用代码进行对象的创建。

把创建和查找依赖对象的控制权交给 IoC 容器,由 IoC 容器进行注入、组合对象之间的关系。这样对象与对象之间是松耦合、功能可复用(减少对象的创建和内存消耗),使得程序的整个体系结构可维护性、灵活性、扩展性变高。 所谓IOC ,就简短一句话:对象由spring来创建、管理,装配!

IOC是DIP的设计原理,DI是IOC的具体实现

ioc优点

集中管理

功能可复用(减少对象的创建和内存消耗)

使得程序的整个体系结构可维护性、灵活性、扩展性变高

解耦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值