Spring 面试题集合

1.什么是Spring?

Spring是一个java企业级应用的开源开发框架,主要用来开发java应用,Spring的目标是简化java企业级应用的开发。

 

2.Spring能帮我们做什么??

Spring 能够通过配置文件帮助我们创建以及组装对象之间的依赖关系

Spring面向切面编程能够帮助我们无耦合的实现日志记录,性能统计,安全控制等功能。

Spring能够很简单的帮我们实现数据库事务管理

Spring很方便的实现数据库的操作,它提供了一套自己的JDBC操作的方法,也能整合其他的优秀的ORM框架

 

3.使用Spring框架有什么好处?

a.轻量,Spring是轻量的,基本的版本大约有2M。

b.控制反转:即IOC,它把传统上由程序代码直接操作对象的调用权交给容器,通过容器来实现对象组件的装配和管理,所谓控制反转就是对组件对象控制权的转移,由程序本身转移到了外部容器。IOC可以由不同的方式实现,主要有2种,一种是依赖查找:容器提供回调接口和上下文环境给组件。一种是DI依赖注入即组件不做定位查询,只提供普通的java方法让容器去决定依赖关系。其注入方式有三种:接口注入,setter注入和构造注入。

c.面向切面编程:Spring提供面向切面编程,并且把应用业务逻辑和系统服务区分开来。

d.容器:spring包含并管理应用中对象的生命周期和配置

e.MVC框架 

f.事务管理

g.异常处理

 

4.Spring IOC容器简介

IOC容器就是具有注入功能的容器,IOC容器负责实例化,定位,配置应用程序中的对象以及对象之间的依赖关系,应用程序无需在代码中直接new相关对象。应用程序由IOC容器进行组装,在Spring中 BeanFactory是IOC容器的实际代表者。

Spring IOC容器通过配置文件来管理对象,一般使用xml,配置文件,注解。

Spring IOC容器的代表就是BeanFactory接口,该接口提供了IOC容器最基本的功能。而 org.springframework.context 包下的 ApplicationContext 接口扩展了 BeanFactory ,还提供了与Spring AOP 集成、国际化处理、事件传播及提供不同层次的 context 实现 (如针对 web 应用的 WebApplicationContext ),总之 BeanFactory提供了最基本的IOC容器的功能,而ApplicationContext则增加了更多企业级功能的支持。

XmlBeanFactory : BeanFactory 实现,提供基本的 IoC 容器功能,可以从 classpat h或文件系统等获取资源;

ClassPathXmlApplicationContext : ApplicationContext 实现,从 classpath 获取配置文件;

FileSystemXmlApplicationContext : ApplicationContext 实现 ,从文件系统获取配置文件。

5.Spring IOC注入的三种 方式

a.setter方式:

如:

 

b.构造注入:

c:静态工厂方式注入

d:无配置文件注入(自动注入)

 

 

5 Spring注解的配置

注解是为 Spring 容器提供 Bean 定义的信息,表现形为把 XML 定义的信息通过类注解描述出来。众所周知,Spring容器三大要素:Bean 定义、 Bean 实现类以及 Spring 框架。如果采用 XML 配置,Bean 定义和 Bean 实现类本身分离,而采用注解配置,Bean 定义在 Bean 实现类上注解就可以实现。

@Component:被此注解修饰的类,将被Spring容器自动识别,自动生成Bean的定义。此外,@Conroller,@Service,@Repository注解与此注解等效果

@Autowired 可以用来装配 bean,都可以写在字段上,或者方法上。使用 @Autowired,首先要在在 applicationContext.xml 中加入 <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> @Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false 。

通过使用注释 @Configuration 告诉 Spring ,这个 Class 是 Spring 的核心配置文件,并且通过使用注释 @Bean 定义 bean

 

6 Spring AOP

Spring AOP中三个概念:Advices,Pointcut,Advisor。

Advices:表示一个method执行前和执行后的动作

Pointcut:表示根据一个method的名字或正则表达式去拦截一个method

Advisor:Advices和PointCut组成的独立的单元,并且能够传给 proxy factory 对象。

使用 AspectJ 框架基于注解实现 Spring AOP。

 

posted @ 2017-02-16 14:49  qyps  阅读(316)  评论(0编辑  收藏  举报