Spring框架面试题

1、Spring的aop你怎样实现?

         用动态代理和cglib实现,有接口的用动态代理,无接口的用cglib

 

2、Spring在SSH起什么作用

         (spring充当了管理容器的角色,)为大部分框架提供模板,给常见的核心类提供初始化,并且整合三层框架

 

3、Spring容器内部怎么实现的

         内部用HashMap实现

 

4、怎么样理解IOC与AOP

         IOC是一种控制反转的思想,降低了对象的耦合度,

AOP是面向切面编程,(非侵入式编程),用来实现非业务性编程(公共功能),譬如日志,权限,事务等等

 

5、Spring的事务,事务的作用

         Spring里面的事务分为编程式事务和声明式事务,一般用声明式事务,用来控制数据操作的完整性,一致性

6、Spring的IOC和AOP你在项目中是怎么使用的?

         IOC容器管理各层的组件

         使用AOP配置声明式事务

         整合其它框架

         IOC主要用来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度,AOP一般用来(操作)事务

 

7、Spring主要使用了什么模式?

         工厂模式à每个bean的创建通过方法

         单例模式à默认的每个bean的作用域都是单例

         代理模式à关于AOP的实现是通过代理,体现代理模式

 

8、Spring bean的作用域.

         Scope作用域有4中,常见的有单例或者多例,默认是单例

9、Spring的事务是如何配置的?

        

10、Spring的配置文件最好使用什么文件?

         Xml,因为它是最简单最流行的数据格式

11、你使用过Spring中的哪些技术?

         Bean的管理,AOP技术,IOC技术,事务等

12、为什么要用Spring

         降低对象耦合度,让代码更加清晰,提供一些常见的模版

13、说下Spring的注解

         1)bean的标记注解

         @Component通用注解@Repository持久层注解 @Service 业务层注解 @Controller表现出注解

         2)bean的自动装配注解

         @AutoWird默认是按照类型装配,如果有多个类型需要实现,可以用Qualifier来指定名称

         @Resource默认是按照名称来装配,是JDK里面自带的注解,默认情况下用@AutoWird注解

14、写过类似Spring AOP的操作吗?

         写过前置通知,后置通知的方法,环绕通知,事务就是典型的AOP的实现

15、Spring中的AOP在你项目中是怎么使用的,用在哪里?

         和Struts2整合的时候,和Hibernate整合的时候都可以用到,事务用的最多,还有个别日志,权限功能也可以用到

16、Spring的事务(传播属性,隔离级别)

         七大传播属性,四大隔离级别

17、Spring的事务在项目中你是怎么用的?

         在业务层加个事务控制, (以及各个框架中的核心类的初始化)

         对数据库执行多步操作时,其中一步出现数据异常,执行回滚

18、Spring 依赖注入(DI)的几种方式

         接口注入,一般用@resource@autowird

19、依赖注入的原理

         通过反射机制生成想要的对象注入到组件中

20、说一下怎么整合Spring的核心监听器。

         (这个是在SSH整合的时候使用),

Spring核心监听器是整个WEB项目启动的时候,用来初始化Spring容器,

具体是在web.xml里面配置的ContextLoaderListener

21、Spring你们为什么用配置文件而不使用注解?

         配置文件耦合度低,容易维护,尤其是在切面或者事务的时候,只配置一次就可以让很多代码拥有事务

22、Spring和Hibernate的事务有什么区别?

         Spring的事务提供了统一的事务处理机制,包含了JDBC,Hibernate,IBatis等事务实现,而Hibernate只处理自己的是

23、Struts2与Spring整合先启动那个容器。

         先启动监听器,因为先要初始化容器,,初始化容器了以后Action才能从容器里面获得

 

24、Spring的事务管理器有几种。

         声明式事务和编程式事务,我们一般用声明式事务

 

25、让你写Spring的容器,你是怎样实现的?

         我们可以写一个HashMap,如果并发考虑的话要写并发的Map,把bean的名字放在map的key,bean的实现放在map的value

26、谈谈Spring的IOC和AOP,如果不用Spring,怎么去实现这两个技术。

         IOC用反射实现,AOP用动态代理实现

27、Spring事务和Hibernate事务的操作上面的区别?

         Hibernate的事务只能手动显示代码的方式控制创建事务与提交事务以及回滚

         Spring可以通过配置文件设定一类class事务的创建、提交以及回滚,也可以显示代码方式控制

 

28、讲下Spring的七大事务传播

         七大事务传播常用的有两个,Required, Required_New

         Required表示两个事务的方法调用的时候,前面的事务和后面的合并成一个事务,

         Required_New是重启一个事务,各干各的

29、在同一进程里,有A,B两个方法都对不同的表进行更新数据,假如A方法出异常了,若要B方法执行,怎样配置事务级别,若不要B方法执行,又该怎样配置?

         前者用Required_New,后者用Required

30、事务并发会引起什么问题,怎么解决

         事务并发会引起脏读,幻读,不可重复读等问题,设定事务的隔离级别就可以解决问题

31、事务的隔离级别

         Spring定义有四种,但是常见的是Read_commit

         Oralce有两种,

         MySql有四种

32、Spring的IOC容器与工厂类有什么区别?

         IOC(inversion of control ) 对bean的控制能力更强,能控制对象自动注入和生命周期,而工厂类只是简单的创建一个对象,没有什么控制能力

33、事务的安全问题:锁机制的实现原理及在项目中的使用

         锁有悲观锁和乐观锁,悲观锁一般假设每个人都会修改数据,默认情况下把数据都锁住,影响性能,但安全性高

         乐观锁是假设每个人都只读一下数据,不会修改数据,性能较高但安全性低,一般通过增加类型于版本控制里面的版本号来解决安全性问题

34、讲下BeanFactory和ApplicationContext的区别

         BeanFactory是Spring容器顶级核心接口,出现较早,但功能少

         ApplicationContext它继承于BeanFatory,对Bean的管理功能比较多,譬如校验,国际化,监听,一般使用ApplicationContext

 

         如果说BeanFactory是Spring的心脏,那么Application就是完整的身躯。ApplicationContext就是由BeanFactory派生出来的。


  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值