1、一个spring Beans的定义需要包含什么?
答:一个spring beans的定义包含容器所必知的所有配置元数据,包括如何创建一个bean,它的生命周期详情及它的依赖。
2、spring支持的几种bean的作用域。
spring框架支持一下五种bean的作用域:
singleton:bean在每个spring ioc容器中只有一个实例。在springbean中它是默认。
prototype:一个bean的定义可以有多个实例。
request:每次http请求都会创建一个bean,该作用域仅在基于web的spring ApplicationContext情形下有效。
seesion:在一个http session 中,一个bean定义对应一个实例。该作用域仅在基于web的spring ApplicationContext 情形下有效。
global-session:在一个全局的HTTP-Seesion中,一个bean定义对应一个实例。该作用域仅在基于web的spring AppcationContext情形下有效。
3、怎样定义类的作用域?
答:当定义一个<bean>在spring里,我们还能给这个bean声明一个作用域。它可以通过bean定义中scpoe属性来定义。
常用 scope属性:singleton(在每个spring ioc容器中一个bean定义只有一个对象实例)、prototype(每次从容器中获取的bean都是新的对象)
4、spring框架中的单例bean的线程安全吗?
答:不安全。
5、什么是spring的内部bean?
答:当一个bean仅被用作另一个bean的属性时,他能被声明为一个内部bean,为了定义inner bean,在spring的基于XML的配置元数据中,可以在<property/>或<construct-arg/>元素内使用<bean/>元素,内部bean通常时匿名的,他们的scope一般时prototype。
6、在spring中如何注入一个Java集合?
答: spring提供一下几个集合的配置元素:
<list>:类型用于注入一列值,允许有相同的值。
<set>:类型用于注入一组值。不允许有相同的值。
<map>:类型用于注入一组键值对,键和值都可以为任意值类型。
<props>:类型用于注入一组键值对,键和值都是只能为string类型。
7、什么时bean的自动装配?
答:无须在spring配置文件中描述JavaBean之间的依赖关系(如配置<property>、<constructor-arg>)。ioc容器会自动建立javaBean之间的关联关系。
8、解释不同方式的自动装配。
答:
9、什么是基于Java的spring注解配置?给一些注解的例子
答:基于Java的配置,运行你在少量的Java注解的帮助下,进行你的大部分spring配置而非通过xml文件。(使用@注解名的方式,实现零配置,但是只能是大部分)
比如:以@Configuration注解为例,它用来标记类可以当做一个bean的定义,被当作springIOC容器使用。另一个例子是@bean注解,他表示此方法将要返回一个对象,作为一个bean注册spring应用上下文。
10、什么是基于注解的容器配置?
答: 相对于xml文件。。。。