Spring面试题


    • 简单介绍下Spring?

spring是一款开源基于Java的开源框架,简化Java的开发,有三个重要的组件,IOC(控制反转),DI(依赖注入),AOP(面向切面编程)


2. 对于Spring IOC的认识

IOC,控制反转,反转的是对象的创建权,由Spring容器来统一创建对象


3. 谈谈自己对于AOP的理解

AOP,面向切面编程,在不修改源代码的情况下,进功能增强,底层使用的是动代理


4. Spring AOP和AspectJ AOP有什么区别?

Spring AOP和AspectJ AOP都可以在不修改源代码的情况下进行功能增强,Spring AOP是运行时增强,AspectJ AOP是编译时进行功能增强,Spring AOP集成了AspectJ AOP,AspectJ AOP功能更为强大,在为多个方法进行功能增强的时候更建议使用AspectJ AOP


5. Spring中的单例bean的线程安全问题了解吗?

Spring中单列的Bean没有解决线程安全问题,不过Spring中单列的Bean大部分都是无状态的,也没有共享的属性,所以可以相当于是线程安全的,我们可以将Bean的创建范围改为非单列模式的,每次从容器中拿Bean都会创建一个全新的对象,也可以使用ThreadLocal类,将共享资源放入当前线程的私有属性中,解决的线程安全问题


6. Spring中的bean生命周期?

BeanDefinition --->实例化 ---> 依赖注入 --->初始化 --->放到容器中使用 ---> 销毁

  1. 通过注解或者xml的方式获取所有的BeanDefinition,Bean定义的信息,放到BeanDefinitionMap中

  1. 实例化BeanDefinitionMap中的Bean,此时属性还没有赋值

  1. 依赖注入,给Bean中的属性赋值

  1. 初始化Bean中的属性

  1. 调用Spring容器的方法getBean()来从ConcurrentHashMap中获取对象

  1. 容器销毁,Bean也随着销毁


7. Spring 框架中都用到了哪些设计模式?


8.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值