Spring 常见问题

1、Spring的理解

Spring 是一个一 IOCAOP 为核心的松耦合非侵入式分层式企业级应用开发框架

非侵入式:可以在对现有结构不影响的前提下增强 JavaBean 的功能(DI)

松耦合:AOP、DI

2、Spring IOC 的理解

Spring 中 IOC 就是将对象的创建交给 Spring 容器来完成,再通过依赖注入来使用容器中的对象。

3、Spring AOP 的理解

Spring AOP 面向切面编程,就是将区别于业务之外的功能独立出来,进行管理和扩展。

Spring AOP 是基于 IOC 实现的,本质实在 Bean 初始化过程中 通过 Bean后置处理器 中的动态代理来做扩展。

关键字: 切面、切点、通知(before、after、around、after throwing、after returing)

4、Spring AOP 的应用有哪些?

日志、动态代理、Bean的增强处理器、事务管理、动态代理

5、Bean 的生命周期

Bean 的定义信息 => Bean 的实例化 => Bean 的初始化 => Bean 的使用 => Bean 的销毁

6、Spring是如何解决循环依赖的?

使用三级缓存,将Bean在初始化完成之前进行提前暴露

7、Spring 中反射的流程

  1. 获取 Class 对象

  2. 获取 Class 对象的构造器

  3. 创建对象

8、依赖注入的方式有哪些?

注解注入、构造器注入、Setter 注入

9、Spring 中 声明 Bean 的注解有哪些?

  • Spring 自带

    @Bean:作用于方法,一般用于配置类中

    @Component、@Service、@Controller、@Repository、@RestController:作用于类

  • mybatis plus

    @Mapper:作用于类

10、Spring 中事务的传播性?

事务的传播性产生于事务的嵌套,内层事务不会对外层造成影响,所以事务的传播性指的其实是外部事务对内部事务的影响,所以对于内部事务,主要分为三大类:

  • 死活不能有事务的

    Never:外部有事务就抛出异常

    Not_Support: 将外部事务挂起后非事务执行

  • 必须要有事务的

    Required:外部有就用外部事物,没有就创建事务(SpringBoot @Transactional 注解默认是这个)

    Required_new: 不管外部有没有事务,都创建自己的事务,外部有事务就挂起

    Nested:外部没有事务就创建事务,外部有事务就创建事务并嵌套在外部事务中

    Mandatory:外部没有事务就报异常,外部有事务就用外部事务

  • 可有可无的

    Supported: 外部有事务就用外部事务,没有就算了

11、事务的隔离级别以及可能出现的问题

隔离级别:read uncommited < read committed < repeatable read < seriazable

可能的问题:脏读、幻读、不可重复读、回滚覆盖、提交覆盖

数据库:MySQL默认:repeatable read

SqlServer、Oracle:read committed

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些 Spring AOP 常见问题: 1. 什么是 Spring AOP? Spring AOP 是 Spring 框架提供的一种基于代理的 AOP(面向切面编程)实现方式。它允许你通过配置来定义横切关注点,并在执行方法时自动将这些关注点织入到目标对象中。 2. Spring AOP 支持哪些 AOP 类型? Spring AOP 支持五种 AOP 类型:前置通知(Before Advice)、后置通知(After Advice)、环绕通知(Around Advice)、异常通知(After Throwing Advice)和最终通知(After Finally Advice)。 3. Spring AOP 和 AspectJ 有什么区别? Spring AOP 是基于代理的 AOP 实现方式,而 AspectJ 是基于编译时或运行时字节码操纵的 AOP 实现方式。Spring AOP 的功能相对比较简单,适用于大多数场景,而 AspectJ 更加强大,但也更加复杂。 4. Spring AOP 的代理是如何实现的? Spring AOP 采用了 JDK 动态代理和 CGLIB 代理两种方式实现代理。当目标对象实现了接口时,Spring AOP 会使用 JDK 动态代理,否则会使用 CGLIB 代理。 5. Spring AOP 的切入点(Pointcut)有哪些表达式? Spring AOP 的切入点表达式支持通配符和正则表达式,包括以下几种: - execution:匹配方法执行的连接点。 - within:匹配指定类型内的方法执行。 - this:匹配当前代理对象类型的执行方法。 - target:匹配当前目标对象类型的执行方法。 - args:匹配参数类型匹配的执行方法。 - @annotation:匹配特定注解标注的方法执行。 以上是一些 Spring AOP 常见问题,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值