scope指的是bean的作用域,在配置bean,由scope属性来配置bean的作用域
singleton单例 :整个容器中只有一个对象实例 spring配置默认是单例
prototype原型 每次获取bean都产生一个新的对象
request每次请求时创建一个新的对象
session在会话的范围内时一个对象
global session 只在portlet下有用,可以看做是application
application 在应用范围中的一个对象
<bean id="user" class="cn.z.vo.User" scope="session">
<property name="name" value="唐三藏"/>
</bean>
需要注意一点的是整合struts2时:需要将action设为scope="prototype"
自动装配(spring偷懒去配置文件)
在配置bean,可以配置bean的autowire属性,用于指定装配类型
autowire自动装配,简化spring配置的繁琐
no:不使用自动装配
byName:根据名称(set方法名)去查找对应的bean,如果找到则装配上
byType:根据类型进行自动装配 不用管bean的id,但是同一种类型的bean只能有一个!!
constructor:当通过构造器注入实例化bean的时候,使用byType的方式装配构造方法。
<bean id"service" class="cn.z.service.impl.UserServiceImpl" autowire="construcor"></bean>
在头部加一个 default-autowire可以配置全局的自动装配类型。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="default">
比起自动装配 用annotation更好