前言:相信大家看过前面的文章后,对框架有了一定的认识,那么今天,在这里带大家开学习另一种框架,它带来了编程人员的春天~它就是Spring
1、Spring框架的由来
2、Spring Ioc
3、Spring Aop
1、Spring框架的由来
Spring的形成,最初来自Rod Jahnson所著的一本很有影响力的书籍《Expert One-on-One J2EE Design and Development》,就是在这本书中第一次出现了Spring的一些核心思想,该书出版于2002年。另外一本书《Expert One-on-One J2EE Development without EJB》,更进一步阐述了在不使用EJB开发JAVA EE企业级应用的一些设计思想和具体的做法。
Spring的一个最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Ordinary Java Object)对象提供企业级的服务。
大约20个功能模块组成,其核心是一个完整的基于控制反转的轻量级容器
2、Spring IoC
IoC的全称为(Inversion of Control),即为控制反转,意为把对资源的控制权反转过来。IoC是面向对象编程中的一种设计理念。
具体实现方式:通过 依赖注入(Dependency Injection),当然也可以通过工厂模式,但是工厂模式的弊端在于需要编写大量的工厂类,大大增加了开发的工作量。
步骤: ①导入依赖jar包
②编写Spring配置文件
③测试
实现依赖注入的三种方式:
- 构造函数
- getter/setter
- 注解(@Service)
3、Spring Aop
AOP全称(Aspect Oriented Programming)面向切片编程的简称。AOP面向方面编程基于IoC,是对OOP的有益补充;
AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了 多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的 逻辑或责任封装起来,比如日志记录,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
AOP是依赖动态代理实现的,具体步骤:先把业务代码中的共性内容抽离出来,然后通过动态代理的方式把抽离出来的共性代码织入业务代码中实现对原代码的增强出来。
常用术语:
- Aspect——切面
- Advice——增强处理
- Join Point——连接点
- Pointcut——切入点
- Target Object——目标对象
- AOP proxy——AOP代理
增强处理类型:
- 前置增强
- 后置增强
- 环绕增强
- 异常抛出增强
- 最终增强
具体使用,一般通过配置文件和注解,使用注解可以大量减少工作量,但其实在Spring Boot中更便于使用,这里只做了解。