Lufer

  • 首页
  • 编程
  • 学习笔记
  • 日常折腾
Lufer
Code the World
  1. 首页
  2. 学习笔记
  3. 正文

Spring部分概念要点总结

2019年8月9日 376点热度 0人点赞 0条评论

一、IOC(Inversion of Control)

1.概念

IOC即控制反转,将设计好的对象交给容器控制,而不是在对象内部控制。
借助IOC容器,可以使各对象之间解耦。

2.实现方式

也叫做依赖注入(DI),共有三种方式:

  1. 接口注入
  2. Construct注入
  3. Setter注入

3.实现方法

其核心是在系统运行中,由IOC容器动态的向某个对象提供所需对象。实现依赖注入的方式是反射,其具体方法是:

  1. 定义用来描述Bean配置的Java类
  2. 解析Bean配置,Spring采用HashMap来存储BeanDefination对象
  3. 遍历取出配置信息,通过反射实例化对象,保存在另一个Map中

4.IOC的优势

  1. 降低类之间的耦合
  2. 倡导面向接口编程
  3. 提高系统可插入,可测试,可修改的特性

二、AOP(Aspect Oriented Programming)

AOP即面向切面编程,在程序某处切开,注入定义的接口(将一些公用行为封装成接口模块)。

1.原理

1.静态代理

若代理类在程序运行前就已经存在,那么这种代理方式被成为静态代理,这种情况下的代理类通常都是我们在Java代码中定义的。

2.动态代理

代理类在程序运行时创建的代理方式被成为动态代理。也就是说,这种情况下,代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。

  1. JDK动态代理:通过反射接收被代理的类,被代理的类必须实现一个借口
  2. CGLIB动态代理:若没有实现接口,SpringAOP会用CGLIB动态生成子类

2.应用场景

权限、缓存、内容传递、错误处理、懒加载、调试、跟踪、优化、同步、事务

3.切点

1.连接点

程序执行的某个特定位置,Spring仅支持方法连接点,如方法的调用前、调用后。

2.切点

查询条件,根据切点查找对应的连接点,一个切点可以匹配多个连接点。

3.增强

织入到目标类连接点上的一段程序代码。

4.引介

可以为类添加一些属性和方法,即使一个类原来没有实现某些功能,通过引介可以动态的添加接口的逻辑,使其成为接口的实现类。
可以在编译器/运行时/装载期织入。

5.切面

由切点和增强组成。

三、 Spring模块结构

标签: Java Spring
最后更新:2022年7月27日

Lufer

新的一天开始啦

点赞
< 上一篇
下一篇 >

文章评论

取消回复

文章目录
  • 一、IOC(Inversion of Control)
    • 1.概念
    • 2.实现方式
    • 3.实现方法
    • 4.IOC的优势
  • 二、AOP(Aspect Oriented Programming)
    • 1.原理
      • 1.静态代理
      • 2.动态代理
    • 2.应用场景
    • 3.切点
      • 1.连接点
      • 2.切点
      • 3.增强
      • 4.引介
      • 5.切面
  • 三、 Spring模块结构

COPYRIGHT © 2022 lufer.cc.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021045819号