Spring相关知识

1、使用Spring框架能带来哪些好处?

1)依赖注入(DI)方法似的构造器和JavaBean properties文件中的依赖关系一目了然
2)与EJB容器相比较,IOC容器更加趋于轻量级。
3)Spring提供了一个便捷的事物管理接口。

2、BeanFactory和ApplicationContext有什么区别?

1)BeanFactory理解为含有bean集合的工厂类,包含了bean生命周期的控制,调用客户端的初始化方法和销毁方法。
2)表面上application context如同bean factory一样具有bean定义,bean关联关系的设置,再次基础上还提供了其他的共能:
  a、提供了支持国际化的文本信息
  b、统一的资源文件读取方式
  c、已在监听器中注册的bean事件

3、Spring有几种配置方式?

1)基于XML的配置
2)基于注解的配置
3)基于Java的配置

4、请解释Spring Bean的生命周期?

1)bean的构造
2)调用setxxx()方法设置bean的属性
3)调用beanNameAware的setBeanName()
4)调用BeanFactoryAware的setBeanFactory()方法
5)调用BeanPostProcessor的postProcessBeforeInitialization()方法
6)调用InitializingBean的afterPropertiesSet()方法
7)调用自定义的初始化方法
8)调用BeanPostProcessor类的postProcessAfterInitialization()方法
9)调用DisposableBean的destroy()方法
10)调用自定义的销毁方法

5、Spring Bean的作用域之间有什么区别?

spring容器中的bean可以分为5个范围:它可以通过bean 定义中的scope属性来定义
1)singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例模式由bean factory自身来维护。
2)prototype:原型范围与单例范围相反,为每一个bean请求提供一个实例
3)request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
4)session:确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
5)global-session:

6、Spring框架中的单例Beans是线程安全的么?

实际上,大部分的spring bean并没有可变的状态,所以在某种程度上说spring的单例bean是线程安全的。如果你的bean有多种状态的话,就需要自行保证线程安全。
浅显的解决方法:是将多态的bean的作用域由“singleton”变更为“prototype”。

7、什么是Spring beans ?

spring bean是那些形成spring应用的主干的java对象,他们被spring IOC容器初始化,装配和管理

8、哪些是重要的bean生命周期方法? 你能重载它们吗?

两个重要的bean生命周期的方法:
setup:他是在容器加载bean的时候被调用
teardown:它是在容器卸载类的时候被调用

9、 你可以在Spring中注入一个null 和一个空字符串吗?

可以
10、开启注解配置的元素

11、使用Spring通过什么方式访问Hibernate?

spring中有两种方式访问hibernate:
  控制反转:Hibernate Template和Callback
  继承 HibernateDAOSupport提供一个AOP拦截器

12、解释AOP

面向切面的编程,或AOP,是一种编程技术,允许程序模块化横向切割关注点,如日志和事务。

13、什么是spring?

spring是java企业级应用的开源开发框架

14、使用Spring框架的好处是什么?

1)轻量:spring是轻量级的
2)控制反转:spring通过控制反转实现了松散耦合
3)面向切面编程(aop):Spring支持面向切面编程,并且把应用业务逻辑和系统服务分开
4)容器:spring包含并管理应用中对象中的生命周期和配置
5)事物管理:spring提供一个持续的事物管理接口,可以扩展到上至本地事物下至全局
6)异常处理:spring提供方便的api把具体技术相关的异常转化为一直的unchecked异常

15、 什么是Spring IOC 容器?

spring IOC负责创建对象,管理对象,并且管理这些对象的整个生命周期

16、Spring 如何保证 Controller 并发的安全

springMVC中,一般controller,service,dao层的scope是singleton;
每个请求都是单独的线程,即是同时访问同一个controller对象,只有读操作,没有写操作是不需要进行同步处理的。
并发线程安全问题解决:
1:在控制器中不适用实例变量
2:将控制器的作用从单例改为原型,scope="prototype",每次都创建新的controller
3:在Controller中使用ThreadLocal变量

17、spring支持的事物管理类型

1)编程式事物管理:你可以通过编程的方式管理事物,这种方式带来了很大的灵活性,但是很难维护
2)声明式事物管理:这种方式以为这你可以将事物管理和业务代码分离。你只需要通过注解或者xml配置管理事物

18、什么是代理?

代理是将通知应用到目标对象后创建对象,从客户端看,代理对象和目标对象是一样的。

19、Spring由7个模块组成

1Spring Core:核心容器提供Spring框架的基本功能,核心容器的主要组件是BeanFactory,它是工厂模式的实现。
2Spring 上下文:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如电子邮件,国际化,校验,和调度功能。
3Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中,所以,可以很容易地使Spring框架管理的任何对象支持AOP
4Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误信息。
5) Spring ORM:Spring框架插入了若干的ORM,从而提供了ORM的对象关系工具。
6) Spring Web模块:
7Spring MVC框架:web模块简化了处理多部分请求以及将请求参数绑定到域对象的工作

20、Spring容器可以分为两种类型

1)BeanFactory:提供了基本的DI支持,最常用的BeanFactory实现就是XmlBeanFactory类,它根据XML文件中的定义加载beans,该容器从XML文件读取配置元数据并用他创建一个完全配置的系统或应用。
2)ApplicationContext应用上下文:基于BeanFactory之上构建,并提供面向应用的服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值