【Spring】(1)Spring 简单介绍

【Spring】(1)Spring 简单介绍

一、Spring 简介

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

  • 目的:解决企业应用开发的复杂性
  • 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
  • 范围:任何Java应用

Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

Spring Framework:我目前还没有查到为什么Spring叫做Spring,准确来说应该是没有查到Spring 的寓意。我个人简单理解理解为春天,软件行业的春天。

在没有Spring 之前,前辈们用的是EJB,不过Spring相比EJB要简单些,后来 Spring 就代替了 EJB。 Spring 可用范围为任何Java应用,注意不仅仅只是Java Web哟。

详情:spring框架(百度百科):https://baike.baidu.com/item/spring%E6%A1%86%E6%9E%B6/2853288

二、Spring 历史

Spring是一个开源框架,它由Rod Johnson创建。

Rod Johnson这位澳大利亚的Java大师,很难想象,他除了在悉尼大学获得计算机学士学位以外还获得了音乐的博士学位,或许正是他音乐的细胞成就了Spring独特简约和优雅。

Rod Johnson在2002年编著的《Expert One-to-One J2EE Design and Development》一书中,对EJB框架的臃肿、低效、脱离现实等种种现状提出了质疑,并积极寻求革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破Java EE传统开发困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了Spring 1.0正式版

详情:Spring 源码分析(一) 迈向Spring之路:https://blog.csdn.net/paullinjie/article/details/56713217

三、Spring 优点

Spring是一个 轻量级控制反转(IoC)和面向切面(AOP)容器 框架。

轻量级定义:轻量级框架是相对于重量级框架的一种设计模式:轻量级框架不带有侵略性API,对容器也没有依赖性,易于进行配置,易于通用,启动时间较短。这是轻量级框架相对于重量级框架的优势。

如果使用某个框架需要继承或者实现框架里面的类和接口,就说这个框架具有侵入性。

spring 是轻量级且非入侵式的框架,引入了spring不会对原来项目产生任何影响。不需要继承或实现框架里面的接口和类。

入侵式:比如使用struts框架时,需要继承struts的类。会对原来的代码产生影响,这就是侵入式。

四、Spring 特征

核心技术: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.

测试: mock objects, TestContext framework, Spring MVC Test, WebTestClient.

数据访问: transactions, DAO support, JDBC, ORM, Marshalling XML.

Spring MVC and Spring WebFlux web frameworks.

集成: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.

语言: Kotlin, Groovy, dynamic languages.

以上摘自 官网 原话。

五、Spring 核心

我们最主要先学习 IoC(控制反转) 和 AOP(面向切面)

1.Spring 框架模块

在这里插入图片描述

官网 下的 I. Overview of Spring Framework 的 2.2. Framework Modules中可以看到。

注意,找到这张图需要是Spring 4的文档,并非 Spring 5。

六、Spring 扩展

Spring Boot:一个可以快速开发的框架,基于Spring Boot可以快速的开发单个微服务。

Spring Cloud:是基于Spring Boot实现的。

现在大部分公司都是使用Spring Boot进行快速开发,学习Spring Boot的前提是,掌握Spring 和Spring MVC。

七、Spring 下载地址

Spring 的下载地址。

官方下载地址:https://repo.spring.io/release/org/springframework/spring/

github下载地址:https://github.com/spring-projects/spring-framework/releases

maven地址:
我们只用导入spring-webmvc就行了,因为导入这个时,他会帮我们webmvc依赖的jar也导入。

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>

参考

Spring 4 官网:https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/#overview-modules

Spring 5 官网:https://docs.spring.io/spring/docs/5.2.5.RELEASE/spring-framework-reference/core.html#spring-core