Spring核心概念
Spring IoC
Spring IoC就是控制反转,也被称为依赖注入(Dependency Injection, DI),是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
依赖是什么:
依赖就是在代码中通过局部变量、方法参数、返回值等建立的对于其他对象的调用关系。
public class UserController { //声明日志 static Logger log = Logger.getLogger(UserController.class); public static void main(String[] args) { //在方法执行前输出日志 log.info("显示用户信息"); //使用try-catch来进行对异常的处理 try { ApplicationContext con = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService = con.getBean("userService", UserServiceImpl.class); userService.showInfo(); } catch (Exception e) { log.error("显示用户信息失败", e); } } }繁琐的代码
上面的代码是一段典型的日志输出+异常处理的代码,从上面的代码可以看出,代码中添加了大量的日志和异常处理的代码,而我们实际的业务代码只有3行。
日志、异常处理、事务控制是一个健壮的业务系统所必须的,但是为了保证系统健壮可用,就需要在众多的业务方法中“反复”编写类似的代码,使得原本就很复杂的业务处理代码变得更加复杂。
在业务系统中,总有一些散落、渗透到系统各处且不得不处理的事情,这些穿插在既定业务中的操作就是所谓的“横切逻辑”,也被称为“切面”。
面向切面编程极大的简化了上面代码中“重复”但又不得不写的代码,可以使我们在不改变原程序的基础上为代码段增加新的功能,对代码段进行增强处理。它的设计思想来源于代理设计模式。
Spring AOP基本概念:
1.切面(Aspect):一个模块化的横切逻辑(或横切关注点),可能会横切多个对象。
2.连接点(Join Point):程序执行中的某个具体的执行点。
3.增强处理(Advice):切面在某个特定连接点上执行的代码逻辑。
4.切入点(Pointcut):对连接点的特征进行描述,可以使用正则表达式。增强处理和一个切入点表达式关联,并在与这个切入点匹配的某个连接点上运行。
5.目标对象(Target object):被一个或多个切面增强的对象。
6.AOP代理(AOP proxy):由AOP框架所创建的对象,实现执行增强处理方法等功能。
7.织入(Weaving):将增强处理连接到应用程序中的类型或对象上的过程。
8.增强处理类型:有前置增强、后置增强、环绕增强、异常抛出增强、最终增强等等。这些增强处理实现方式都差不多。
除了上文说的技术之外,spring的帮助文档也给我们提供了相当全面且详细的说明。
- Spring Boot核心概念
- IOC和AOP是spring中的两个核心的概念,下面谈谈对这两个概念的理解。
- Spring Cloud构建微服务架构:消息驱动的微服务(核心概念)【Dalston版】
- Spring核心概念理解-IoC容器、DI、AOP
- Spring之IOC、核心容器和Bean概念详解
- Spring Cloud架构教程 (七)消息驱动的微服务(核心概念)【Dalston版】
- Spring核心概念(一)
- Spring中AOP的核心概念
- Spring Cloud架构教程 (七)消息驱动的微服务(核心概念)【Dalston版】
- Spring核心概念<二>:AOP面向切面编程
- Spring Cloud架构教程 (七)消息驱动的微服务(核心概念)【Dalston版】
- 第一章 spring核心概念
- Spring系列(一):Spring的基本概念及其核心
- spring技术核心概念纪要
- Spring核心概念之(表达式匹配规则)
- Spring两大核心概念之IOC
- 003-spring-data-elasticsearch 3.0.0.0使用【一】-spring-data之概述、核心概念、查询方法、定义Repository接口
- spring技术核心概念概要
- Spring核心一(基本概念)
- Spring Core Programming(Spring核心编程) - AOP Concepts(AOP基本概念)