Spring 框架入门
一、什么是 Spring?
Spring 是一个项目管理框架,核心是用来管理项目中组件对象的创建、使用、销毁。
由于spring 框架可以帮我们生产项目中组件对象,因此也习惯称spring是一个工厂 | 容器。
组件: 项目中的service,dao,action,都是项目中的组件
注意:spring框架通常不管理对实体类对象创建
二、Spring 核心思想
1.IOC & DI
IOC:( inversion of controll )控制反转
定义:将对象的创建由原来(new)的方式转移到配置文件中,交给spring工厂来创建对象
DI( dependcy Injection )依赖注入
定义:Spring不仅要创建对象,还要建立类与类之间的关系,因此在控制反转的基础上又提出了依赖注入的概念。
1.AOP
AOP( Aspect Oriental Programing ) 面向切面的编程
定义:通过在项目的运行过程中动态的为项目某些组件生成动态代理对象,通过在生成的动态代理对象中执行相应的附加操作 | 额外功能过程,减少通用代码的冗余问题。(可参考日志、拦截器理解)
底层原理:Java种动态代理的封装。
AOP 相关术语
- Joinpoint(连接点): 所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,因为 spring
只支持方法类型的连接点。大白话就是类中的方法 - Pointcut(切入点): 所谓切入点是指我们要对哪些 Joinpoint
进行拦截的定义。大白话就是类中要增强的方法。也就是说所有的切入点是连接点,但连接点并不一定是切入点 - Advice(通知/增强): 所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。
通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。大白话就是说切入点要干的事情。 - Introduction(引介): 引介是一种特殊的通知在不修改类代码的前提下, Introduction
可以在运行期为类动态地添加一些方法或 Field。 - Target(目标对象):代理的目标对象。
- Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程。 spring 采用动态代理织入,而 AspectJ 采用编译期织入和类装载期织入。
- Proxy(代理):一个类被 AOP 织入增强后,就产生一个结果代理类。
- Aspect(切面):是切入点和通知(引介)的结合。