1、Spring是什么?
Spring是一个基于IOC和AOP的结构J2EE系统的框架 ,Spring的核心是控制反转(IoC)和面向切面(AOP)。
applicationContext.xml,Spring核心配置文件。
2、IOC(反转控制)
IOC 反转控制 是Spring的基础,Inversion Of Control ,简单说就是创建对象由以前的程序员自己new 构造方法来调用,变成了交由Spring创建对象,DI 依赖注入 Dependency Inject. 简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。
2.1、通过spring获取Category对象,以及该对象被注入的name属性(Spring 可以创建实体类对象),以获取对象的方式来进行比较:
传统的方式:
通过new 关键字主动创建一个对象
IOC方式:
对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 IOC是反转控制 (Inversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。
3、AOP(面向切面编程)
AOP 即 Aspect Oriented Program 面向切面编程 ,首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。
所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务,所谓的周边功能,比如性能统计,日志,事务管理等等 。
周边功能在Spring的面向切面编程AOP思想里,即被定义为切面,在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发 然后把切面功能和核心业务功能 "编织" 在一起,这就叫AOP。
3.1、AOP的过程分为两步:1,在业务类中插入切入点,2,将切入点和切面类关联起来
<aop:config>
<!--这表示对满足如下条件的方法调用,进行切面操作:* 返回任意类型com.how2java.service.ProductService.* 包名以 com.how2java.service.ProductService 开头的类的任意方法(..) 参数是任意数量和类型-->
<aop:pointcut id="loggerCutpoint" expression="execution(* service.ProductService.*(..))" />
<!--声明切入点-->
<aop:aspect id="logAspect" ref="loggerAspect">
<!--指定辅助功能--><!--声明切面,切入点被执行就执行切面 -->
<aop:around pointcut-ref="loggerCutpoint" method="log" />
<!--执行切面类里的方法-->
<!--一个切点是可以关联多个切面的,一个切面只能关联一个方法-->
</aop:aspect>
</aop:config>
来源:https://blog.csdn.net/qq_37651252/article/details/102751300