Spring的一些面试题个人整合

spring的面试题个人整合

1.Spring的aop你怎样实现?

       Spring中AOP的有两种实现方式:
              1、JDK动态代理(有接口)
              2、Cglib动态代理(无接口)

2.Spring在SSH起什么作用?

  为大部分框架提供模版,常见的核心类提供初始化,并且整合三层框架

  在SSH框假中spring充当了管理容器的角色

3.Spring容器内部怎么实现的?

  内部用Map实现,或者说HashMap

4.怎么样理解IOC与AOP?

  IOC是一种控制反转的思想,降低了对象的耦合度,AOP是面向切面编程,非侵入式编程,实现了非业务性编程(公共功能),譬如日志,权限,事务等等

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

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

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

  IOC主要来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度,AOP一般用来整合框架时候都可以用得到,

       事务用的最多,还有个别日志,权限功能也可以用到

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

  工厂模式-->每个Bean的创建通过方法

  单例模式-->默认的每个Bean的作用域都是单例

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

8.Spring bean的作用域

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

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

  1.先配置事务管理器TransactionManager,不同的框架有不同属性

  2.再配置事务通知和属性,通过tx:advice

  3.配置<aop:config>,设置那些方法或者类需要加入事务

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

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

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

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

12.为什么要用Spring

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

13.说下Spring的注解

  1.bean的标记注解

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

  2.bean的自动装配注解

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

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

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

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

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

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

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

   七大传播属性(REQUIRED、MANDATORY 、NEVER 、NOT_SUPPORTED 、REQUIRES_NEW 、SUPPORTS、NESTED )

  四大隔离级别(READ_UNCOMMITTED、 READ_COMMITTED、 REPEATABLE_READ、SERIALIZABLE)

17.事务并发会引起什么问题,怎么解决

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

18.事务的隔离级别

  Spring定义有四种,但是常见的是READ_COMMIT,Oralce有两种实现,MYSql有四种

19.依赖注入的原理

  就是通过反射机制生成想要的对象注入

20.说一下整合Spring的核心监听器

  这个是在SSH整合的时候使用,是整个WEB项目启动的时候初始化Spring的容器. 具体是在web.xml里面配置的ContextLoaderListener

  Spring配置文件中的核心是个监听器,是用来初始化Spring的容器

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

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

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

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

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

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

24.让你写Spring的容器,你是怎样实现的?

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

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

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

26.Spring事务和Hibernate事务的操作上面的区别?

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

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

27.Spring的IOC容器与工厂类有什么区别?

  IOC(Inversion of Control)对Bean的控制能力更强,能控制对象自动注入,还可以控制生命周期,而工厂类只是简单的创建一个对象,没有什么控制能力

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

  锁有悲观锁和乐观锁

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

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

29.讲下BeanFactory和ApplicationContext的区别

  BeanFactory是Spring容器顶级核心接口,比较早,但功能比较少,getBean就是BeanFactory定义的

  ApplicationContext是Spring里面的另外一个容器顶级接口,它继承于BeanFactory,但是提供的功能譬如校验,国际化,监听,对Bean的管理功能比较多,一般使用ApplicationContext

猜你喜欢

转载自www.cnblogs.com/xiansy/p/12753944.html