zoukankan      html  css  js  c++  java
  • 一、spring 4概述

    0 前言

    0.0 Spring 来历

      Spring 是于2003年兴起的一个轻量级的Java 开发框架,

      为了解决企业应用开发的复杂性而创建,

      核心是控制反转(IoC)和面向切面编程(AOP)。

      简单来说,Spring是一个分层的Java SE、EE full-stack(一站式)轻量级开源框架。

    0.1 Spring 的作用

      Spring 的主要作用就是为代码“解耦”,降低代码间的耦合度。

    0.2 系统代码分类

      根据功能不同,可以将一个系统代码分为:

        主业务逻辑:

          代码间逻辑关系紧密,有具体的专业业务应用场景,复用性相对较低。

        系统级业务逻辑:

          功能相对对立,没有具体的专业业务场景,主要是为主业务提供系统级服务,

          如日志、安全、事务等,

          复用性强。

    0.3 耦合度分类

      Spring根据代码的功能特点,将降低耦合度的方式分为了两类:

        IoC

          主业务在相互调用过程中,不用再自己维护关系了,不用再自己创建要使用的对象了,

          而是由Spring容器统一管理,自动“注入”。

        AOP

          系统级服务得到了最大复用,

          且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,

          而是由Spring 容器统一完成“织入”。

    1 Spring 体系结构

      

      Spring 由20多个模块组成,它们可以分为数据访问/集成(Data Acceess/Integration)、Web、面向切面编程(AOP、Aspects)、应用服务器设备管理(Instrumentation)、消息发送(Messaing)、核心容器(Core Container)和测试(Test)。

    2 Spring 的下载

      Spring 官网:http://spring.io

      Spring 仓库:https://repo.spring.io/release/org/springframework/spring

      GitHub 主页:https://github.com/spring-projects/spring-framework

      (我反正是用Spring Boot)

    3 Spring 4 框架解压目录及jar包说明

      

      

    4 Spring 的特点

     4.0 非侵入式

      所谓非侵入式是指,Spring 框架的API不会在业务逻辑上出现,即业务逻辑是POJO。

      由于业务逻辑中没有Spring 的API,所以业务逻辑可以从Spring 框架快速的移植到其他框架,

      即与环境无关。

    4.1 容器

      Spring 作为一个容器,可以管理对象的声明周期、对象与对象之间的依赖关系,

      可以通过配置文件来定义对象,以及设置与其他对象的依赖关系。

    4.2 IoC

      控制反转(Inversion of Control),即创建被调用者的实例不是由调用者完成,而是由Spring 容器完成,并注入调用者。

      当应用了IoC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。即,不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

    4.3 AOP

      面向切面编程(AOP,Aspect Orient Programming),是一种编程思想,是OOP的补充。

      很多框架都实现了对AOP编程思想的实现。

      Spring 也提供了AOP的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如日志和事务)进行开发。应用对象只实现它们应该做的--完成业务逻辑--仅此而已。它们并不负责其它的系统级关注点,例如日志和事务支持。

      我们可以把日志、安全、事务管理等服务理解成一个“切面”,那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好:

      首先业务逻辑不纯净;其次这些服务被很多业务逻辑反复使用,完全可以剥离出来形成一个“切面”,以期复用,然后将“切面”动态的“织入”到业务逻辑中,让业务逻辑能够享受到此“切面”的服务。

  • 相关阅读:
    算法与数据结构 (四) 排序 一 交换类排序
    算法与数据结构 (三) 二叉树的简单应用 二叉查找树,二叉堆排序
    算法与数据结构 (二) 二叉树的简单实现,非递归的前序遍历 中序遍历 后序遍历
    算法与数据结构 (一) 链表,栈,队列的简单实现
    服务器端的redis和MySQL的远程连接的简单解决方案
    记一次自定义监听器使用spring 管理的bean的问题
    基于java开发的RBAC模型权限管理系统
    2019 本科java开发春招面经(实习)
    记一次Bootstrap框架下 使用Ajax失效的问题
    [转]在static代码块或static变量的初始化过程中使用ServiceManager提供的api的陷阱
  • 原文地址:https://www.cnblogs.com/basilguo/p/spring_4xx_1.html
Copyright © 2011-2022 走看看