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. HTML5 LocalStorage Demo

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  2. 数据库表结构文档查看器 基于netcore

    前言 日常开发业务代码,新接手一块不熟悉的业务时需要频繁的查看对应业务的数据库表设计文档.相比于直接翻看业务代码,有必要提供一个数据库表结构文档查看器来解决这些繁琐的问题. CML.SqlDoc CM ...

  3. ASP.NET基于Aspose.Words插入Word水印以及多个水印

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Da ...

  4. HTTP协议基础(未完待续)

    一.超文本传输协议 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的基础. 设计HT ...

  5. 水平居中和transform: translateY(-50%) 实现元素垂直居中效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Spring中 使用注解+c3p0+事物 《模拟银行转账》

    使用注解的方式  模拟转账 要么都成功 要么都失败 !保持一致性! 准备工作: jar包:  需要的类:       UserDao: package com.hxzy.spring.c3p0.Dao ...

  7. Java8新特性学习笔记(一) Lambda表达式

    没有用Lambda表达式的写法: Comparator<Transaction> byYear = new Comparator<Transaction>() { @Overr ...

  8. Android-获取手机已经安装的程序

    有时候我们会查询手机里面是否安装了某个程序,或者获取已经安装软件名称的集合. android这边提供了相应的接口. [java] view plaincopy final PackageManager ...

  9. 【C#】自定义新建一个DataTable(3列),循环3维矩形数组往其填充数据

    从中可以了解DataTable的新增行和列;矩形多维数组循环机制;新建了DataTable DataTable dt = new DataTable(); DataColumn dc1 = new D ...

  10. mysql 与sqlser group by

    mysql select * ,count(1)  from simccbillm18 group by MonthNum; SqlSer select  col1,col2 from table g ...