Java Spring框架介绍

Spring框架简介

  Spring是一个Java开源框架。最初是解决企业应用开发的复杂性而创建的,但是发展到现在已经不止于应用与企业应用了。Spring现在已经发展成了一个庞大的家族。

   

Spring框架特点

  1. IoC(Inversion of Control)

   Spring框架是IOC理念具体实现,Spring是一个轻量级控制反转(Ioc)和面向切面(Aop)的容器框架。通过控制反转(Ioc)来起到实现松耦合的作用。

  2. AOP(面向切面)

     提供面向切面编程的丰富支持,允许通过分离应用业务逻辑与系统服务(业务无关)进行内聚性的开发。记录日志属于系统服务,商品下单属于业务逻辑。利用它很容易实现如权限拦截,运行期监控等功能。

  3. 容器

    Spring作为一个容器,可以管理对象从创建到销毁的整个生命周期、对象与对象之间的依赖关系。可以通过配置文件来定义对象,以及设置其他对象的依赖关系。在Spring中所管理的对象叫做Bean,管理对象容器叫做Bean容器。

  4. 非侵入式编程

    Spring框架的API不会再业务逻辑上出现,即业务逻辑是POJO(Plain Ordinary Java Object)。由于业务逻辑中没有Spring的API,所以业务逻辑可以从Spring框架快速的移植到其他框架。

  5. Spring的DI机制降低了业务对象替换的复杂性。

  6. Spring核心技术是反射。

  7. Spring中的设计模式主要使用工厂和代理模式实现。

 

Spring的作用

    1. 容器。

    2. 提供了对多种技术的支持,如JMS,MQ,UnitTest等。

    3. 使用Aop中事务管理,统一收集日志等功能。

    4. 提供了众多的方便应用辅助类,例如JDBC,Template等。

    5. 对主流的框架如Hibernat,JPA,Struts等提供了良好的支持。

 

Spring的应用场景

    1. 构建企业应用(SpringMvc + Spring + Hibernat/ibatis)。

    2. 单独使用Bean容器。

    3. 单独使用Aop进行切面处理。

    4. 对消息的支持。

 

Spring框架发展阶段

  Spring从2004 release第一个版本,包含java里面的方方面面。

    1. 第一阶段:javabean + servlet + jsp 逐步发展。

    2. 第二阶段:面对ejb重量级框架带来的种种麻烦。

    3. 第三阶段:springmvc/struct  + spring + hibernate/mybatis。

    4. 第四阶段:享受springboot 约定大雨配置 的种种乐趣,把种种配置当成一种约定。

    5. 第五阶段:以阿里dubbo为代表的soa微服务架构体系。

    6. 第六个阶段:springcloud微服务架构体系技术生态圈,核心是微服务 高流量,基于springboot。

 

Spring框架环境搭建

    Spring的官网:https://spring.io/

  Spring文档地址:https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/core.html

  Spring下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/ 可以根据需要去下载。

  

 

   也可以使用Maven方式来安装,访问search.maven.org, 然后在输入框中输入a:spring-context,选择下图第一个链接。

  

  可以根据你所需要的版本,点击Latest Version那一栏(99+)来选择你所需要的版本,如下:

  

  我选择的是5.1.6.RELEASE,将下面XML配置中的dependencies内容拷贝到编辑器中pom.xml文件中。

  

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.1.6.RELEASE</version>
</dependency>

   粘贴到编辑器里的pom.xml文件后,会自动下载Spring框架及其依赖(基本组件)。

  

   在resources目录下创建文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

 

  

 

 

 

 

 

 

目前Spring较新的版本是Spring 5.x,而Spring Boot 2就是基于Spring 5来开发的。

Spring 5.x主要新特性

  

 

 

   Spring5 配置对象的三种方式

    1. XML文件配置方式。

    2. 注解配置方式(JDK1.5+),这种方式也是最简单,使用最广泛的方式。

    3. Java Config配置方式(Spring 4+),这种是存粹使用java的方式来配置。

 

 

 

 

Spring框架核心概念

   Spring模块

  

  Core Container中包含Beans容器(Beans),核心的包及工具(Core),上下文(Context),Spring表达式(SpEl)。
 

  1. Ioc容器

    容器是一种可以盛装东西的物件,在软件系统中容器是一种为某种特定组件的运行提供必要支持的一个软件环境。例如,Tomcat就是一个Servlet容器,它可以为Servlet的运行提供运行环境。类似Docker这样的软件也是一个容器,它提供了必要的Linux环境以便运行一个特定的Linux进程。

    通常来说,使用容器运行组件,除了提供一个组件运行环境之外,容器还提供了许多底层服务。例如,Servlet容器底层实现了TCP连接,解析HTTP协议等非常复杂的服务,如果没有容器来提供这些服务,我们就无法编写像Servlet这样代码简单,功能强大的组件。早期的JavaEE服务器提供的EJB容器最重要的功能就是通过声明式事务服务,使得EJB组件的开发人员不必自己编写冗长的事务处理代码,所以极大地简化了事务处理。

    Spring的核心就是提供了一个IoC容器,它可以管理所有轻量级的JavaBean组件,提供的底层服务包括组件的生命周期管理、配置和组装服务、AOP支持,以及建立在AOP基础上的声明式事务服务等。

 

posted @ 2019-05-29 22:35  songguojun  阅读(575)  评论(0编辑  收藏  举报