Spring面试总结

Spring面试总结

1,谈谈你对spring的理解

(1)总体介绍:spring是一个非常好的框架,可以说是给开发人员带来了春天(这也是为什么这个框架叫做spring),它其实就是框架与业务逻辑层之间的粘合剂,使得表现层框架与业务逻辑层进行解耦/数据层框架与业务逻辑层进行解耦,使他们之间的耦合度大大的降低,大大方便了软件后期的二次开发和扩展.

Spring相当于一个大的工厂类(BeanFactory),在其配置文件中通过元素配置用于创建实例对象的类名和实例对象的属性。

(2)包含的主要模块:spring主要包含核心部分(也就是IOC容器),spring AOP,spring JDBC,spring ORM,spring MVC等等

(3)各模块的作用:

Spring IOC: spring提供的IOC容器(控制反转)是一种编程思想,也是一种艺术架构,主要负责对象的创建和销毁管理,实现模块之间的解耦.

Spring AOP: 通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中

Spring JDBC:这是由spring提供的一种dao层操作的技术.

Spring ORM: spring提供的一些ORM类型的框架如JDO,Hibernate 和 iBatis ,SQL Map

Spring MVC: 其实就是全功能的构建 Web 应用程序的 MVC 实现.

2,aop是什么?aop的作用?

AOP称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。实现AOP功能采用的是代理技术,客户端程序不再调用目标类,而调用代理类,代理类再去调用目标类,而在代理类中加入上述系统功能的代码,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类.这样就将目标类中的方法业务与系统功能代码分离.

3,什么是IOC?什么是 DI?

IOC:控制反转,对于对象的创建和销毁让容器进行管理,权限让spring IOC容器进行管理,IOC容器中主要使用"依赖注入"(DI)

对象的依赖关系让容器管理,程序猿不用关心类与类之间的依赖关系,把重心放到业务处理上.

DI:依赖注入

4,谈谈你对spring依赖注入的理解?以及有哪些常用的依赖注入?

构造方法注入:

(a)程序中提供一个构造器(依赖抽象)

  (b)spring配置文件完成接口与实现的依赖关系

set方法注入:(开发中比较建议使用的一种注入方式)

    (1)类中提供一个属性与set方法,通过set方法把属性注入到spring容器中

(2)在配置文件中完成它们依赖关系

属性注入:

int类型注入String类型注入List类型注入Set类型注入:不能有重复值

Map类型注入数组类型注入:实现properties注入:key value--->key--->value连接数据库中    

spring 继承(parent)注入:

(a)抽象继承类使用 abstract="true"

(b)子类继承 parent="父类Id"

5,jdo是什么

JDO(java data object)Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。使用jdo开发人员对于存储数据对象完全不需要额外的代码,这些繁琐的代码jdo已经进行了封转,另外,JDO很灵活,因为它可以在任何数据底层上运行,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。 

6,springejb的区别

Spring是一中轻量级的框架,EJB是一种重量级的框架(轻量和重量说的是框架的集成度[耦合度]) 

spring底层使用IOC容器(依赖注入)完成对象的实例化,完成bean的管理

EJB有两个bean:SessionBean[1,有状态的(性能耗费多,为其他bean服务)2,无状态的(消耗性能低)]EntityBean,EJB既是一种框架又是一种标准,EJB通过自己的容器(EJB容器)进行管理bean

Spring包含ejb的功能

7,spring的优点?

1,使框架集成解耦

2,提供对事物支持(spring的声明事物)

3,springbean的管理(单例/多例)

4,对流行框架支持(struts,struts2,webwork,jsf,hibernate,ibatis,flex[-->html5])

5,spring支持对hibernate session的管理(spring对其他框架(hibernate,ibtais)进行了二次封装,使得开发变得简单)

8,谈谈log4j的使用

添加类库,添加log4j的配置文件, 程序中的使用private Log  log = LogFactory.getLog(BookTest.class);log.xxx()

log4j级别有低到高:(分别对应5个方法)debug  info  warn  error  fatal

debug调试模式info普通信息

warn:警告信息error错误信息(exceptionfatal:严重错误信息(导致内存泄露)

开发模式中建议使用info级别,生产模式(部署上线后)建议使用error级别.

你可能感兴趣的:(Spring面试总结)