博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单说_spring
阅读量:2490 次
发布时间:2019-05-11

本文共 1231 字,大约阅读时间需要 4 分钟。

文章目录

前言

  最近在和小伙伴们讨论spring的内容,今天小咸儿特来总结一波~


叙述

宝图

  先来看看spring各个模块之间的关系

在这里插入图片描述

  既然看到了spring的各个模块关系图,那么我们就先来介绍一下spring的两大模块。

spring是什么

Spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一栈式) 轻量级开源框架。

或者简单说来就是一切从bean开始。

四个关键策略

  • 1、基于POJO的轻量级和最小侵入性编程;
  • 2、通过依赖注入和面向接口松耦合;
  • 3、基于切面和惯性进行声明式编程;
  • 4、通过切面和模板减少样板式代码;

IOC/DI

  IOC:控制反转,也就是说将需要实现的对象创建、依赖的代码交给spring去实现。

  DI:去赋值,维护好对象与对象之间的关系。

  • spring-beans和spring-core是核心模块,包含控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)。
  • spring-context模块构架于核心模块之上,扩展了BeanFactory,为她添加了Bean生命周期控制、框架事件体系以及资源加载透明化
  • spring-expression模块是统一表达式语言(EL)的扩展模块,可以查询、管理运行中的对象,同时也方便的可以调用对象方法、操作数组、集合等。

AOP

  AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码。Spring AOP使用纯java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码。

纵向继承:

在这里插入图片描述
横向抽取:
在这里插入图片描述
在这里插入图片描述
实现原理:

  • AOP底层采用代理机制进行实现。
  • 接口 + 实现类:spring采用JDK的动态代理 Proxy。
  • 实现类:spring采用cglib字节码增强。

由spring-aspects和spring-instrument和spring-aop三个模块组成。

  • spring-aop是spring的另一个核心模块,是AOP主要的实现模块,以JVM的动态代理技术为基础,设计出了一系列的AOP横切实现,比如前置通知、返回通知、异常通知等。
  • spring-aspects模块集成自AspectJ框架,主要是为spring AOP提供多种AOP实现方法。
  • spring-instrument模块是基于Java SE中的“java.lang.instrument”进行设计的,应该算是AOP的一个支援模块,主要作用是JVM启动时,生成一个代理类。

总结

  有关更多spring的内容分享,还请见小咸儿的博客内容。

感谢您的阅读~~

转载地址:http://sjerb.baihongyu.com/

你可能感兴趣的文章
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>
设计模式07_建造者
查看>>
设计模式08_适配器
查看>>
设计模式09_代理模式
查看>>
设计模式10_桥接
查看>>
设计模式11_装饰器
查看>>
设计模式12_外观模式
查看>>
设计模式13_享元模式
查看>>
设计模式14_组合结构
查看>>
设计模式15_模板
查看>>
海龟交易法则01_玩风险的交易者
查看>>
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>