致访客
感谢各位一年多的陪伴,因内容调整,本站将于近日迁移到新域名并不再更新主要内容。
特此通知。
感谢各位一年多的陪伴,因内容调整,本站将于近日迁移到新域名并不再更新主要内容。
特此通知。
Day02 题目
解释Spring支持的几种bean的作用域
singleton:默认的单例模式,每个容器中只有一个bean的实例
prototype:每一个bean请求提供一个实例
request:为每一个request创建一个实例,在请求完成后,bean被GC回收
session:每个session中有一个bean的实例,session过期后,bean随之失效
global-session:全局作用域,全局作用域与Servlet中的session作用域效果相同。
Spring框架中的单例Beans是线程安全吗?为什么?
Spring没有对单例bean进行多线程封装处理,大部分的bean并没有可变的状态,所以在某种程度上说单例bean是线程安全的。
但如果bean有多种状态的话(如view Model),就需要自行保证线程安全。解决办法之一是将多态bean的作用域由单例singleton变为多例prototype。
Spring基于xml注入bean的方式有哪些
默认构造
<bean id="" class="">
静态工厂
<bean id="" class="工厂全限定类名(包名+类名)" factory-method="静态方法"></bean>
实例工厂:必须先有工厂实例对象,通过实例对象创建对象。提供所有的方法都是非静态的。
<!-- 创建工厂实例 -->
<bean id="myBeanFactoryId" class="package.MyBeanFactory"></bean>
<bean id="userServiceId" factory-bean="myBeanFactoryId" factory-method="createService"></bean>