1、Spring

1.1简介

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用

EJB(很复杂的大型框架)

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

  • 历史:
    • 2002年,推出了interface21(interface21是Spring的前身),2004年3.24诞生了Spring发布了1.0版本。
    • Rod JohnSon是Spring的创始人,他是音乐学博士(大佬)
  • Spring理念:使现有的技术更加容易使用,本身是一种融合剂,整合现有框架技术。

  • 两套框架:

    • SSH:Struct+Spring+Hibernate!
    • SSM:SpringMvc+Spring+Mybatis
  • 官网

  • 下载地址

  • github地址

  • Maven地址:

    <!-- Spring-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    <!-- JDBC-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.8.RELEASE</version>
    </dependency>
    
    

轮子理论:不要重复造轮子!(不要在框架上重复这个框架)

1.2 Spring优点

  1. 开源免费框架(容器)
  2. 轻量级(很小),非入侵式(不会改变原来代码的情况)的
  3. 控制反转(IOC),面向切片(AOP)
  4. 支持事务处理,对框架整合的支持。

Spring是一个轻量级的控制反转和面向切面编程的开源框架

1.3 组成

1. 核心容器SpringCore: 核心容器提供Spring框架的基本功能。—-它主要的组件就是BeanFactory,是工厂模式的实现。同时BeanFactory适用控制反转(IOC)思想将应用程序的配置和依赖性规范与实际的应用程序分开。

2. Spring Context: Spring上下文是一个配置文件,主要向框架提供上下文信息。

3. SpringAop: 通过配置管理特性,SpringAOP模块直接将面向切面地编程功能集成到了Spring框架中,所以,它可以很容易地使Spring框架管理的任何对象支持AOP。SpringAOP模块也是基于Spring的应用程序中的对象提供了事务管理服务。—–比较强大的功能

4. SpringDAO: 它主要和dao层相关联,可以用该结构来管理异常处理和不同数据库供应商抛出的错误信息。*其中异常层次结构简化了错误处理,并且极大地降低了需要编写地异常代码数据(例如打开和关闭连接)。*

5. Spring ORM : Spring框架中插入了若干个ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。

6. SpringWEB模块: Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

7. SpringMVC:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、FreeMarker、Velocity、Tiles(jsp布局)、iText(报表处理) 和 poi。

1.4 拓展

现代化开发java就是基于Spring的

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

很多公司使用SpringBoot进行快速开发,学习SpringBoot前提:需要完全掌握Spring和SpringMvc

在Spring发展了多年之后,融合的框架实在太多了,虽然配置很简单,但是蚁多咬死象,配置变得十分繁琐,人称配置地狱


醉后不知天在水,满船清梦压星河