Spring系列 1~~~

  • 1、Spring
  • 1.1 Spring简介
  • 1.2、Spring优点
  • 1.3、组成
  • 1.4、扩展


1、Spring

1.1 Spring简介

  • Spring:春天------>给软件行业带来了春天
  • 2002,首次推出了Spring框架的雏形:interface21框架
  • Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版
  • Rod Johnson,Spring框架的创始人。
  • Spring理念:使现有的技术更加容易使用,本身十一个大杂烩,整合了现有的技术框架。

其主要有以下框架应用:

  • SSH:Struct2+Spring+Hibernate
  • SSM:SpringMVC+Spring+Mybatis

可以从以下方式直接了解Spring

  • 官方下载地址:https://repo.spring.io/release/org/springframework/spring/
  • GitHub:https://github.com/spring-projects/spring-framework

在应用Spring时,记得在配置文件中添加Spring依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.3</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.4</version>
</dependency>

1.2、Spring优点

  • Spring是一个开源的免费的框架(容器)
  • Spring是一个轻量级的、非入侵式的框架
  • 控制反转(IOC),面向切面编程(AOP)
  • 支持事务的处理,对框架整合的支持

总结一句话:Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架。

1.3、组成

Spring由7大模块组成,如下所示:

springtast 每天1点 spring in time_Web


Spring-Core:

核心容器,提供依赖注入(Dependency Injection)管理Bean容器功能,其中BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能

Spring-Context:(Spring核心容器<上下文模块>)
核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了消息、事件传播以及验证的支持。另外,这个模块提供了许多企业服务,例如电子邮件、JNDI访问、EJB集成、远程以及时序调度(scheduling)服务。也包括了对模版框架例如Velocity和FreeMarker集成的支持。

Spring-Aop:
提供了面向切面编程支持。

Spring-Dao:
对传统的JDBC进行了抽象,还提供了一种比编程式更好的声明式事务管理方法。

Spring-Web:
提供Web应用上下文,对Web开发提供功能上的支持,如请求,表单,异常等。另外,这个模块还提供了一些面向服务支持。利用Servlet listeners进行IOC容器初始化和针对Web的applicationcontext。

Spring Web MVC:
全功能MVC框架,作用等同于Struts。它提供了一种清晰的分离模型,在领域模型代码和web form之间。

Spring-ORM:
关系映射模块,ORM包为流行的“关系/对象”映射APIs提供了集成层,包括JDO,Hibernate和iBatis(MyBatis)。

1.4、扩展

springtast 每天1点 spring in time_Web_02

  • Spring Boot
  • 一个快速开发的脚手架
  • 基于SpringBoot可以快速的开发单个微服务
  • 约定大于配置
  • Spring Cloud
  • SpringCloud是基于SpringBoot实现的

因为现在大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握Spring及SpringMVC。

弊端:发展太久了,违背了原来的理念,配置实份繁琐,人称“配置地狱”