其实bean也是我们最熟悉的,每注册一个bean就是给spring的IOC容器中添加一个对象,在spring初始化的时候就已经帮我们创建好了,我们需要用的时候直接调用就行了。
几个重要的属性介绍:
id:bean的唯一标识符,也即是对象的变量名
class:属性定义Bean的类型,并使用完全限定的类名。
name:功能相当于取别名(这里的name可以取多个别名)下面就是取多个别名的例子
<bean id="user" class="com.xuan.pojo.User" name="user3,user4,user5,user6,user7">
<constructor-arg ref="student"></constructor-arg>
<constructor-arg ref="teacher"></constructor-arg>
</bean>
scope:bean的作用域
Scope | Description |
---|---|
singleton | (默认)为每个Spring IoC容器将单个bean定义的作用域限定为单个对象实例。 |
prototype | Scopes a single bean definition to any number of object instances. |
request | 将单个bean定义的范围限定为单个HTTP请求的生命周期。也就是说,每个HTTP请求都有一个在单个bean定义后面创建的bean实例。Only valid in the context of a web-aware Spring ApplicationContext . |
session | 将单个bean定义的范围限定为HTTP的生命周期Session 。Only valid in the context of a web-aware Spring ApplicationContext . |
application | 将单个bean定义的作用域限定为的生命周期ServletContext。 Only valid in the context of a web-aware Spring ApplicationContext . |
websocket | 将单个bean定义的作用域限定为的生命周期WebSocket 。 Only valid in the context of a web-aware Spring ApplicationContext . |
singleton(单例):容器只创建一个对象
prototype(原型):每一次从容器get的时候都创建一个新的对象
怎么用?
使用ApplicationContext的getBean方法里面传入别名或者本身的名字(bean指定的id属性)都是可以获取到制定的数据的。
<alias name="user" alias="user2"></alias>
什么时候用?
一般用于团队开发,多个配置文件通过导入的方式实现整合。
<import resource="applicationContext.xml"></import>
原文:https://www.cnblogs.com/xuan-study/p/13325351.html