一、scope指bean的作用域:在配置bean时,有scope属性来配置bean的作用域。
<!-- bean的作用域(默认是singleton):
singleton:单例,整个容器中只有一个对象实例;
prototype:原型,每次获取bean都产生一个新的对象;
request:每次请求时创建一个新的对象;
session:在会话的范围内是一个对象;
global session:只在portlet下有用,表示是application;
application:在应用范围中是一个对象。
-->
<
bean
id
=
"address"
class
=
"com.liujie.model.Address"
scope="request"
>
<
property
name
=
"address"
value
=
"北京"
></
property
>
</
bean
>
注意:在整合struct2和spring时,需要将action设置为scope="prototype"。 |
二、自动装配 --- 简化spring配置文件
在配置bean时,可以配置bean的
autowire属性,用于指定装配类型。
<!-- autowire:自动装配,用来简化spring配置。
byName:根据名称(setter方法名)去查找相应的bean,如果有则装配上;
byType:根据类型进行自动装配,不用管bean的id,但是同一种类型的bean只能有一个;(不推荐使用)
no:不使用自动装配;
constructor:当通过构造器注入实例化bean时,使用byType的方式装配构造方法。
byName、byType是通过setter方法来装配的,constructor是通过构造方法来装配的。
-->
<
bean
id
=
"service"
class
=
"com.liujie.service.impl.UserServiceImpl"
autowire="constructor"
></
bean
>
可以配置全局的自动装配类型。在头部配置
default-autowire。
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"
default-autowire="byName"
>
推荐不使用自动装配,而是用annotation。 |