关于Spring的一些面试问题

1、 什么是spring\springmvc?二者异同点?

Spring是针对JavaSE/JavaEE的一站式轻量级开源框架,主要应用于java开发。
Springmvc是一个类似Struts的mvc框架,隶属于spring,需要spring工具包的支持。

2、 为什么使用spring?(spring的作用)

1.降低耦合度(IOC)
2.增强内聚性(AOP)
3.轻量级,占用资源较少
4.兼容性好,能与其他优秀框架,Struts,hibernate,mybatis
5.非侵入式,spring应用中的对象不依赖spring中的特定类
6.方便测试,spring支持JUnit4,可通过注解进行测试
7.声明式事务的支持,只需通过配置就能完成对事务的管理,无需手动编程

3、 对spring的个人理解

举一个列子:要生产一个高30cm手持枪械有胳膊有腿的塑料小人,传统方法是先生产模型,之后一点点浇筑成型,虽然能够达到要求但可操作性不好,过程繁琐;如果换一种方法,让设计师将小人拆解成一个个零件(各个对象),在图纸上确定如何拼接(xml文件),告诉他我需要一个头,一个身体和一把枪,我们可以先把一部分零件拼成头部,一部分零件拼成身体,最后在合到一起即可,不需要像浇筑那样,从下至上一步步依赖(DI&IOC)。如果日后发生新的需求,比如要求手里拿的是剑不是枪,传统方法就只能重新做,而如今我可在制作的时候就身上留下可拆卸可扩展的节点,只需要将拿剑的地方加上一把剑即可,不影响小人本身(AOP)

4、 什么是bean?

Bean就是spring配置时的根元素.

5、 讲解一下AOP?

所谓aop就是面向对象编程OOP的延伸,面向切面编程,其核心有以下几点:
1、横切关注点:即我们要在什么地方做拦截,拦截之后要做什么
2、切面:即横切关注点的对象
3、连接点:Spring中连接点即被拦截的方法(整个方法定义为连接点)
4、切入点:pointCut,连接点对于拦截的定义(调用此方法触发拦截的行为)
5、通知:即拦截到连接点之后要执行的代码,分为前置、后置、异常、最- 终、环绕
6、目标对象:代理的目标对象
7、织入:将切面应用到目标对象并导致代理创建对象的过程
8、引入:在不修改代码的情况下,引入可以为运行期的类动态地添加一些方法和Field

6、 DI依赖注入的过程?

1.加载xml文件
2.使用SAX解析获取xml根节点,读取每一个元素及其下属子元素.
3.根据2获取的元素,读取classname使用反射机制和newinstance方法实例化所有bean
4.判断所有元素是否有注入属性,获取被注入的bean的所有属性,被注入bean的ref值与注入bean的name值相同就获取被注入bean的set方法(getWriteMethod),获取private权限(setAccessible(true)),之后使用反射机制向被注入bean中注入bean属性。

7、 对bean的理解?

8、 Spring中获取bean的方式?

9、 Bean的生命周期?\servlet的生命周期?

1.实例化对象
2.封装属性
3.SetBeanName
4.设置工厂或者上下文对象
5.执行前处理bean
6.执行属性配置后操作
7.执行后处理bean方法
8.执行指定实例化操作
9.执行业务处理
10.销毁
11.执行指定销毁方法

10、 Spring的核心是什么?

IOC,AOP,DI
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值