spring frameworkJava

十分钟就能回顾Spring常问的知识点,带你突击面试没问题!

2021-10-27  本文已影响0人  熬夜不加班

前言

作为一个写Java的程序员,应该不太可能没听过Spring。对开发者来说,Spring就像是哆啦A梦的口袋。无论需要什么道具,都可以从口袋里直接拿出来,而不用关心这些道具来自哪里。

本篇主要记录一些关于Spring的基础知识,用于快速查找和回顾不适合作为Spring的入门学习(头铁的旁友随意)。

核心

Spring的两大核心当属IOCAOP

IOC

IOC是控制反转(Inversion Of Control),IOC是一种编程思想。Spring的IOC容器实现了IOC,是Spring框架的基本功能,管理着Spring应用中bean的创建配置管理。Spring的IOC容器接管了应用中的bean,能够自动解决bean与bean之间的依赖。

传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转。因此反转是指:依赖对象的获取被反转了。

IOC容器对使用者来说就像是一个黑盒,不需要关心bean之间的依赖是怎样的,大大减少了编程的难度。

IOC的实现方式有两种:依赖注入(Dependency Injection,DI)和依赖查找(Dependency Lookup,DL)

AOP

AOP(Aspect-Oriented Programming)即面向切面编程,是一种完全不同于OOP的编程思想。AOP不是用来取代OOP的,反而是来补充OOP的。

OOP的思想把项目分为层次结构,是一种从上到下的结构。这种上下结构想要做到从左到右是一件非常繁琐的事。这种从左到右的需求往往是一些诸如日志安全事务等,非业务性的功能。这样的功能如果按照OOP的思想来实现,就会导致大量冗余、侵入性强的代码。所以AOP的作用就是剥离一些非业务代码,做到统一管理。

AOP的功能就是在运行时,把指定的代码动态的加入到指定的地方,来完成一些非业务逻辑的功能,从而避免手动编写这些代码。

AOP往往采用动态代理的方式来实现。

作用域

Spring bean的作用域主要有五种:

实例化

Spring中的bean的实例化主要有三种方式

注入方式

属性的注入有两种方式:byTypebyName

事务隔离级别

Spring提供了五种隔离级别:

除了第一个是Spring新增的,其余的四个都是和数据库的事务隔离级别一一对应

事务传播机制

事务传播机制是指在一个可能含有事务的方法中,调用了另一个可能含有事务的方法,这两个事务应该如何去取舍。最常见的场景就是在Service层。比如OrderService#createOrder()方法里调用了StockService#decreaseStock(),而这两个方法明显都是有事务的。这时,两个事务如何相互影响就是事务传播机制。

Spring提供了七种事务传播机制:

生命周期

Spring管理了对象的生命周期,所以有必要了解Spring到底是怎么管理bean的生命周期的。如果我们想要在bean生命周期的某个时刻执行特定的功能应该怎么办?

Spring bean的生命周期颇为复杂,以下是整个过程,参考org.springframework.beans.factory.BeanFactory

Spring Bean生命周期

常用注解

标识类

注入类

web相关

SpringMVC请求过程

一图胜千言


spring-mvc请求过程

总结

本篇主要列举了与Spring相关的一些基础知识,包括IOC、AOP、bean的作用域、生命周期、事务传播机制、常用注解等。了解了这些基础知识,能帮助我们更好的使用Spring。

作者:Sicimike
原文链接:https://blog.csdn.net/Baisitao_/article/details/105151646

上一篇下一篇

猜你喜欢

热点阅读