1.单例类的配置
如果我们想创建一个单例类的bean,只能会通过静态工厂来创建。
下图为一个单例类:

Stage并没有提供公开的构造方法,构造方法都是私有的,必须通过getInstance()方法获得已经实例化好的stage,所以我们每次调用返回的都是相同的实例。
在Spring的配置文件中,我们可以通过<bean> 的factory-method属性,调用一个指定的静态方法来创建实例。

2.bean的作用域
Spring中所有的bean默认都是单例。当容器分配一个Bean时,返回的都是同一个实例,单有时候我们需要每次调用都返回一个唯一的bean实例,可以通过配置bean的scope属性实现。
scope值默认为singleton 即单例。 修改为prototype 每次调用都会创建一个实例。

3.初始化和销毁Bean
当实例化一个bean时,可能需要执行一些初始化的操作,同样,当不在需要Bean,将其从容器中移除时,我们可能还需要按照顺序执行清楚工作。为了满足在初始化和销毁Bean时所需要做的特殊操作,Spring提供了Bean生命周期的钩子方法。
为Bean定义初始化和销毁操作,只需要使用init-method 和destrory-method参数来配置<bean>元素
例如:
在Stage类中添加初始化和销毁时所要执行的方法:

配置xml文件,在bean中设置init-method和destroy-method属性

4.注入Bean属性
注入简单值
将字符串作为参数注入。
<bean id =“XX” class="xxxxxxxxxxxxxxxxxxxxxx">
<property name="song" value="yesterday once more">
<beans>
将数字作为参数注入
<bean id =“XX” class="xxxxxxxxxxxxxxxxxxxxxx">
<property name="age" value="18">
<beans>
引用其他的bean
将A作为参数注入到其他bean中
<bean id =“A” class="xxxxxxxxxxxxxxxxxxxxxx">
<property name="age" value="18">
<beans>
<bean id =“XX” class="xxxxxxxxxxxxxxxxxxxxxx">
<property name="instrument" ref="A">
<beans>
spring装配集合
当配置集合类型的bean属性时,spring提供了4种类型的集合配置元素,如下。

集合元素 用途
<list> 装配list类型的值,允许重复
<set> 装配set类型,不允许重复
<map> 装配map类型的值,名称和值可以是任意类型
<props> 装配properties类型的值,名称和值必须都是String类型

装配List:
<bean id="roles" class="cn.com.ztz.spring.model.Roles">
<property name="roleName" value="辅导员"/>
<property name="users">
<list>
<ref bean="users1"/>
<ref bean="users2"/>
<ref bean="users2"/> //允许重复
</list>
</property>
</bean>
<bean id="users1" class="cn.com.ztz.spring.model.Users">
<property name="name" value="张三"/>
</bean>
<bean id="users2" class="cn.com.ztz.spring.model.Users">
<property name="name" value="李四"/>
</bean>

装配set
<bean id="roles" class="cn.com.ztz.spring.model.Roles">
<property name="roleName" value="辅导员"/>
<property name="users">
<set>
<ref bean="users1"/>
<ref bean="users2"/>
<ref bean="users2"/> //不允许重复,user2只会注入一个。
</set>
</property>
</bean>
<bean id="users1" class="cn.com.ztz.spring.model.Users">
<property name="name" value="张三"/>
</bean>
<bean id="users2" class="cn.com.ztz.spring.model.Users">
<property name="name" value="李四"/>
</bean>

装配Map
<bean id="roles" class="cn.com.ztz.spring.model.Roles">
<property name="roleName" value="辅导员"/>
<property name="users">
<map>
<entry key="USERS1" value-ref="users1"/>
<entry key="USERS2" value-ref="users2"/>
</map>
</property>
</bean>
<bean id="users1" class="cn.com.ztz.spring.model.Users">
<property name="name" value="张三"/>
</bean>
<bean id="users2" class="cn.com.ztz.spring.model.Users">
<property name="name" value="李四"/>
</bean>
<map>中的<entry>元素由一个键和一个值组成,键和值可以是简单类型,也可以是其他的Bean的引用。这些属性将帮助我们指定<entry>的键和值

装配properties集合(类似map但是key和value必须均为字符串)
<bean id="roles" class="cn.com.ztz.spring.model.Roles">
<property name="roleName" value="辅导员"/>
<property name="users">
<props>
<prop key="USERS">张三</prop>
<prop key="AGE">19</prop>
</props>
</property>
</bean>

装配null
有时候由于特殊原因,需要将bean的某个值设置为空
这是后我们可以如下配置:
<bean id="roles" class="cn.com.ztz.spring.model.Roles">
<property name="roleName" value="辅导员"/>
<property name="users"><null/></property>
</bean>

Spring----有关bean的配置的更多相关文章

  1. Spring框架bean的配置(2):SpEL:引用 Bean、属性和方法。。。

    将这些架包放入在工程目录下建立的lib文件夹里,并解压 commons-logging-1.1.1 spring-aop-4.0.0.RELEASE spring-beans-4.0.0.RELEAS ...

  2. Spring中的事物管理,基于spring的bean的配置

    很多东西与上边的相同,这儿只简介: 导包... 数据库中建立三个表... 建立存放连接数据库的file文件:jdbc.properties: ----------------------------- ...

  3. Spring中Bean的配置:基于XML文件的方式

    Bean的配置一共有两种方式:一种是基于XML文件的方式,另一种是基于注解的方式.本文主要介绍基于XML文件的方式 <bean id="helloWorld" class=& ...

  4. String框架搭建的基本步骤,及从 IOC & DI 容器中获取 Bean(spring框架bean的配置)--有实现数据库连接池的链接

    Spring框架的插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite(是一个压缩包)导入步骤: eclipse->help-> ...

  5. Spring中bean的配置

    先从IOC说起,这个概念其实是从我们平常new一个对象的对立面来说的,我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就表示当前模块已经 ...

  6. (转) Spring读书笔记-----Spring的Bean之配置依赖

    前一篇博客介绍了Spring中的Bean的基本概念和作用域(Spring读书笔记-----Spring的Bean之Bean的基本概念),现在介绍Spring Bean的基本配置. 从开始我们知道Jav ...

  7. Spring之Bean的配置方式

    在博客中为了演示容器Bean实例化时暴露出的几个接口,将UserBean配置在XML中,其实常见的Bean的配置有3种.1.基于xml配置Bean 2.使用注解定义Bean 3.基于java类提供Be ...

  8. spring中bean的配置详解--定义parent

    在工作中碰到了好多的配置文件,具体来说是spring 中bean配置的parent的配置,搞的我一头雾水,仔细看一下spring中有关bean的配置,剖析一下,具体什么含义! 一.Spring IoC ...

  9. Spring中Bean的配置:基于注解的方式

    组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: -@Component:基本注解,标识一个受Spring管理的组件 -@Respositor ...

  10. Spring框架bean的配置(3):基于注解的配置

    1.基于注解的配置: @Component: 基本注解, 标识了一个受 Spring 管理的组件 @Respository: 标识持久层组件 @Service: 标识服务层(业务层)组件 @Contr ...

随机推荐

  1. 对象初始化的完整过程(C#)

    1.静态构造函数 在引入本文的主题之前,我们先来铺垫一下吧,看看静态构造函数的概念及用途. C#中允许创建无参数构造函数,该函数仅执行一次.它一般被用来初始化静态字段.CLR不能保证在某个特定时刻执行 ...

  2. Pi 实现VLC网络视频监控

    安装摄像头 将Pi的原装摄像头安装在pi上面 ssh连接pi 通过xshell或者putty等工具连接ssh 安装VLC $ sudo apt-get update $ sudo apt-get in ...

  3. pageadmin网站制作 怎么验证sql用户名和密码的正确性

    使用pageadmin建站系统的时候,不懂可以参考官网教程. 1.打开SQL Server Management Studio会弹出如下界面. 第一个箭头指向的就是服务器名称,如果用ip无法连接sql ...

  4. mysql--视图,触发器,事务,存储过程

    一.视图 视图是一个虚拟表(非真实存在),是跑到内存中的表,真实表是硬盘上的表,怎么就得到了虚拟表,就是你查询的结果,只不过之前我们查询出来的虚拟表,从内存中取出来显示在屏幕上,内存中就没有了这些表的 ...

  5. “全栈2019”Java多线程第十五章:当后台线程遇到finally

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  6. Windows 断开CIFS共享出现 “此网络连接不存在”

    Windows 断开CIFS共享出现 "此网络连接不存在" 首先请您尝试 net use * /delete /y 命令,若无效本文就是为您准备的. 检查是否是因为用户被设置共享桌 ...

  7. Oracle递归查询(start with)

    写代码时碰到要弄清楚Oracle的role之间的传递关系,就是有role A的话,可以通过grant A to B,把A赋予给B,又通过grant B to C .那我想知道所有role中,有哪些ro ...

  8. 核心API的使用(获取两个字符串的最大相同子串)

    /** * 获取两个字符串的最大相同子串. 例:abegad acegab */public class TheSameString { public static void main(String[ ...

  9. CSS01--概述与选择器

    CSS:Cascading Style Sheets,层叠样式表.我们之前已经说过,HTML解决的是网页内容(结构)的问题,而CSS立足于网页的表现方面的问题,则样式定义如何显示HTML标签,js负责 ...

  10. 常用的re正则

    常用的正则表达式: 用户名:/^[a-z0-9_-]{3,16}$/ 密码:/^[a-z0-9_-]{6,18}$/ 十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 电子邮 ...