SpringFramework初识

简介: SpringFramework初识

@[TOC]

Spring的优势

Spring框架主要的优势是在简化开发框架整合上。

  • 简化开发: Spring框架中提供了两个大的核心技术,分别是:

    • ==IOC==
    • ==AOP==

      • ==事务处理==

      1.Spring的简化操作都是基于这两块内容,所以这也是Spring学习中最为重要的两个知识点。

      2.事务处理属于Spring中AOP的具体应用,可以简化项目中的事务管理,也是Spring技术中的一大亮点。

  • 框架整合: Spring在框架整合这块已经做到了极致,它可以整合市面上几乎所有主流框架,比如:

    • ==MyBatis==
    • MyBatis-plus
    • Struts
    • Struts2
    • Hibernate
    • ……

Spring家族

Spring并不是单一的一个技术,而是一个大家族,可以从官网的Projects中查看其包含的所有技术。

在这里插入图片描述
其中有三个我们要着重关注:
在这里插入图片描述

  • Spring Framework:Spring框架,是Spring中最早最核心的技术,==也是所有其他技术的基础==。
  • SpringBoot:Spring是来简化开发,而SpringBoot是来帮助Spring在简化的基础上能更快速进行开发。
  • SpringCloud:这个是用来做分布式之微服务架构的相关开发。

除了上面的这三个技术外,还有很多其他的技术,也比较流行,如SpringData,SpringSecurity等,这些都可以被应用在我们的项目中。

Spring发展史

在这里插入图片描述
Spring发展史

  • IBM(IT公司-国际商业机器公司)在1997年提出了EJB思想,早期的JAVAEE开发大都基于该思想。
  • Rod Johnson(Java和J2EE开发领域的专家)在2002年出版的Expert One-on-One J2EE Design and Development,书中有阐述在开发中使用EJB该如何做。
  • Rod Johnson在2004年出版的Expert One-on-One J2EE Development without EJB,书中提出了比EJB思想更高效的实现方案,并且在同年将方案进行了具体的落地实现,这个实现就是Spring1.0。
  • 随着时间推移,版本不断更新维护,目前最新的是Spring5

    • Spring1.0是纯配置文件开发
    • Spring2.0为了简化开发引入了注解开发,此时是配置文件加注解的开发方式
    • Spring3.0已经可以进行纯注解开发,使开发效率大幅提升,我们的课程会以注解开发为主
    • Spring4.0根据JDK的版本升级对个别API进行了调整
    • Spring5.0已经全面支持JDK8,现在Spring最新的是5系列所以建议大家把JDK安装成1.8版

Spring Framework系统架构

Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。Spring Framework的发展也经历了很多版本的变更,每个版本都有相应的调整:
在这里插入图片描述
Spring Framework的5版本目前没有最新的架构图,而最新的是4版本,所以接下来主要研究的是4的架构图
在这里插入图片描述

系统架构图都是上层依赖于下层。例如:AOP技术就离不开核心容器

(1)核心层

  • Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块

    看到容器我们就知道是用来装东西的,而在java中只有一种东西可以装,那就是 对象。所以根据这样的结构设计来看,Spring Framework是用来管对象的一门技术

(2)AOP层

  • AOP:面向切面编程,它依赖核心层容器,目的是==在不改变原有代码的前提下对其进行功能增强==
  • Aspects:AOP是思想,Aspects是对AOP思想的具体实现

(3)数据层

  • Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
  • Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
  • Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现

(4)Web层

  • 这一层的内容将在SpringMVC框架具体学习

(5)Test层

  • Spring主要整合了Junit来完成单元测试和集成测试
相关文章
|
Java Serverless Spring
org.springframework.boot.loader.JarLaunche
org.springframework.boot.loader.JarLaunche
672 3
|
Java Maven
程序包org.springframework.transaction.annotation不存在
整合ssm报:程序包org.springframework.transaction.annotation不存在 使用注解: @Transactional 之后,就一直报不存在 最终找到原因是:maven依赖 spring-tx版本问题,换个版本就OK
1604 0
程序包org.springframework.transaction.annotation不存在
|
7月前
|
Java Windows Perl
mybatis+spring报错PropertyAccessException 1: org.springframework.beans.MethodInvocationException
mybatis+spring报错PropertyAccessException 1: org.springframework.beans.MethodInvocationException
|
7月前
|
容器
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
106 0
|
7月前
解决The injection point has the following annotations:@org.springframework.beans.factory.annotation错误~
解决The injection point has the following annotations:@org.springframework.beans.factory.annotation错误~
1069 0
解决:org.springframework.web.method.annotation.MethodArgumentTypeMismatchExceptio
解决:org.springframework.web.method.annotation.MethodArgumentTypeMismatchExceptio
468 0
|
存储 安全 Java
初识springframework
初识springframework
|
Java 数据库连接 Maven
NoSuchMethodError: org.springframework.beans.factory.config.BeanDefinition.getResolvableType()Lorg/s
Spring整合Mybatis时出现错误:NoSuchMethodError:org.springframework.beans.factory.config.BeanDefinition.getResolvableType()Lorg/springframework/core/ResolvableType;及解决办法
NoSuchMethodError: org.springframework.beans.factory.config.BeanDefinition.getResolvableType()Lorg/s
|
Java Spring 开发者
org.springframework.beans.NotWritablePropertyException
<div style="font-family:微软雅黑; font-size:14px; line-height:21px; widows:auto"> <div style="background-color:inherit">Spring属性注入异常</div> <div style="background-color:inherit"><br style="background
14283 0