> 文章列表 > Spring 知识点

Spring 知识点

Spring 知识点

spring定义:

  • Spring 是基于分层的javaEE应用一站式轻量级开源框架,主要核心是 IOC(控制反转/依赖注入)与AOP(面向切面)两大技术,实现项目在开发过程中的轻松解耦,提高项目的开发效率

控制反转(IoC):

及上层控制下层,而不是下层控制着上层。我们用依赖注入(Dependency Injection)这种方式来实现控制反转。所谓依赖注入,就是把底层类作为参数传入上层类,实现上层类对下层类的“控制”。

面向切面(AOP) :

AOP全名Aspect-oriented programming面向切面编程大法,它有很多兄弟,分别是经常见的面向对象编程,朴素的面向过程编程和神秘的函数式编程等。

在函数式编程函数是第一等公民

函数是第一等公民:是指函数跟其它的数据类型一样处于平等地位,可以赋值给其他变量,可以作为参数传入另一个函数,也可以作为别的函数的返回值。正如我们开头提到的闭包的实现好体现了这个特点,例如如下代码

ps:oriented adj. 对…感兴趣的;以…为方向的;重视…的 

什么是 pom?

POM 是 Project Object Model 的缩写,即项目对象模型。

pom.xml 就是 maven 的配置文件,用以描述项目的各种信息

 

代理模式实现三要素

  1. 接口定义
  2. 目标对象与代理对象必须实现统一接口
  3. 代理对象持有目标对象的引用 增强目标对象行为

代理模式实现分类以及对应区别

  1. 静态代理:手动为目标对象制作代理对象,即在程序编译阶段完成代理对象的创建
  2. 动态代理:在程序运行期动态创建目标对象对应代理对象。
  3. jdk动态代理:被代理目标对象必须实现某一或某一组接口 实现方式 通过回调创建代理对象。
  4. cglib 动态代理:被代理目标对象可以不必实现接口,继承的方式实现。
    动态代理相比较静态代理,提高开发效率,可以批量化创建代理,提高代码复用率。
    7.3. Aop 理解
  5. 面向切面,相比oop 关注的是代码中的层 或面
  6. 解耦,提高系统扩展性 提高代码复用
  1.  Aop 关键词

  2. 连接点:每一个方法
  3. 切入点:匹配的方法集合
  4. 切面:连接点与切入点的集合决定了切面,横切关注点的抽象
  5. 通知:几种通知
  6. 目标对象:被代理对象
  7. 织入:程序运行期将切面应用到目标对象 并生成代理对象的过程
  8. 引入:在不修改原始代码情况下,在程序运行期为程序动态引入方法或字段的过程

 

切入点语法

切入点是什么:

* 匹配规则。规定什么方法被拦截、需要处理什么方法

* 定义切入点:

@Pointcut("匹配规则")

* Aop 切入点表达式简介

* 1. 执行任意公共方法:

* execution(public *(..))

* 2. 执行任意的set方法

* execution( set(..))

* 3. 执行com.xxxx.service包下任意类的任意方法

* execution( com.xxxx.service..*(..))

* 4. 执行com.xxxx.service 包 以及子包下任意类的任意方法

* execution( com.xxxx.service...*(..))

* 注:表达式中的第一个* 代表的是方法的修饰范围

可选值:private、protected、public (* 表示所有范围)