xml配置文件详解
1:bean的基本属性配置:

<!-- id是bean的标识符,必须唯一,如果没有配置id,name默认为标识符
如果配置了id,有配置了name,那么name为别名
name可以设置多个别名,分隔符可以是空格 逗号 分号
class是bean的全限定名,即包名加类名
如果不配置id和name,那么可以根据applicationContext.getbean(Class)获取对象,
scope:bean的作用域,
取值:singleton:单例的,整个容器只产生一个对象,默认是单例
prototype:原型,每次获取bean都创建一个新对象
request:每次请求时创建一个新的对象
session:在一个会话范围内只产生一个对象
application:在应用范围内是一个对象
autowire:自动装配 用于简化spring的配置
取值:byname:根据名称(根据set方法中set后面的内容)去查找相应的bean,发现了则装载上
bytype:根据类型自动装配,不用去管id,但同一种类型的bean只能有一个,f否则报错
constructor,当通过构造器注入实例化bean时,装配构造方法
-->
<bean id="userMysqlDaoImpl" class="com.wang.dao.impl.UserMysqlDaoImpl"></bean>
<bean id="userOracleDaoImpl" class="com.wang.dao.impl.UserOracleDaoImpl"></bean>
<bean id="service" class="com.wang.service.UserService">
<property name="userDao" ref="userOracleDaoImpl"></property>
</bean>

注意:
在整合struts和hibernate框架时,需要将action的scope设为"prototype".
可以配置全局的自动装配类型,在beans内,设置default-autowire="...";
2,团队协作开发(import标签):
<!--可以读取到其他配置的xml,如果在当前目录下,直接写文件名,如果是在其他目录下,要写完整包名,以"/"分隔-->
<import resource="beans1.xml"/>
3:bean的继承(parent属性):
如果car1和car2对象同属于类Car,在配置文件中,他们之间就可以使用parent属性来简化代码:

<bean id="car1" class="com.wang.entity.Car">
<property name="brand" value="Audi"/>
<property name="price" value="1000000"/>
</bean>
<bean id="car2" parent="car1">
<property name="price" value="3000"></property>
</bean>

这样的配置,car2就继承了car1中的class属性和brand的属性.简化了代码,car1称为父bean,car2称为子bean.car2可以覆盖从car1继承过来的属性,比如price.
4.抽象bean(abstract属性):
当在bean标签中设置属性abstract="true",即指定该bean为抽象bean,不会被实例化,一般仅供被其他的bean继承.
抽象bean,可以不指定class属性,而是在继承它的子Bean中设置class属性.
5.bean的关联(depend-on属性):
要求在配置类A的bean时,必须有一个关联的类B的bean,换句话说类A的bean依赖于类B的bean,这时可以在类A的bean标签中设置depend-on="bBean".
这样设置的话,类B的bean会先初始化,
6.使用外部属性文件
在配置文件中配置Bean时,有时候需要在bean的配置里混入一些系统部署的细节信息(例如文件路径,数据源配置信息),而这些部署细节实际上需要和bean配置相分离.
在配置c3p0数据源连接池时,我们可以这样写:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="123"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
<!-- <property name="initPoolSize" value="3"></property>
<property name="maxPoolSize" value="10"></property> -->
</bean>

为了使数据库配置信息和spring的配置文件分离,便于维护,更好的方法是这样:
在src目录下,新建一个db.properties文件,,内容如下:
jdbc.user=root
jdbc.password=123
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/hibernatejdbc.initialPoolSize=5
jdbc.maxPoolSize=10
在beans.xml中:

<!-- 导入资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<!-- <property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property> -->
</bean>

注意使用context的标签,需要在头文件中添加支持context的信息,这里不再给出.
7.管理bean的生命周期:
SpringIOC容器可以管理bean的生命周期,在Bean生命周期的特定点执行定制的任务.
在bean标签中有<init-method>和<destory-method>,为bean指定初始化和销毁方法.当设置了这两个属性后,bean的生命周期是这样的:
创建bean实例->为bean的属性设置值,或对其他bean进行引用->调用bean的初始化方法->根据需要调用bean自己的方法(使用bean)->容器关闭时,调用bean的销毁方法.
xml配置文件详解的更多相关文章
- sqlMapConfig.xml配置文件详解
sqlMapConfig.xml配置文件详解: Xml代码 Xml代码 <? xml version="1.0" encoding="UTF-8" ?& ...
- AndroidManifest.xml配置文件详解(转载)
AndroidManifest.xml配置文件详解 2013-01-05 10:25:23 分类: Android平台 AndroidManifest.xml配置文件对于Android应用开发来说是 ...
- struts2.0中struts.xml配置文件详解
先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...
- maven学习(一)setting.xml配置文件详解
maven环境搭建: 1.官网下载zip包,解压至任意目录(如:E:\wly\apache-maven-3.2.5) 2.环境变量MAVEN_HOME(E:\wly\apache-maven-3.2. ...
- log4j.xml配置文件详解
一 log4j.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:c ...
- struts2中struts.xml配置文件详解【未整理】
1. 深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1. 包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...
- struts2 struts.xml配置文件详解
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...
- struts2.0 struts.xml配置文件详解
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...
- AndroidManifest.xml配置文件详解
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅.下面是一个标准的AndroidManifest.xm ...
- Maven的pom.xml配置文件详解
Maven简述 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Mav ...
随机推荐
- ACM题目————小A的计算器
Description 以往的操作系统内部的数据表示都是二进制方式,小A新写了一个操作系统,系统内部的数据表示为26进制,其中0-25分别由a-z表示. 现在小A要在这个操作系统上实现一个计算器,这 ...
- 读取EXCEL
package com.wxgs.ch04; import java.io.File;import java.io.IOException; import jxl.Cell;import jxl.Sh ...
- SlickGrid example 4: 过滤
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11
参考地址: http://www.cnblogs.com/lyhabc/p/3505677.html SQLPROMPT5.3对各种加密对象的解密测试 SQL2005解密已经被加密的存储过程 昨天ah ...
- Linux高级变量
http://blog.chinaunix.net/uid-27040051-id-3450991.html 高级变量 基本形式 [1].变量扩展 格式 ${变量名称} [2].命令扩展 格式 $(命 ...
- Android ActivityThread(主线程或UI线程)简介
1. ActivityThread功能 它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client ...
- mvcAPI (入门 3)
续上 1)无参数Get请求 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> < ...
- c++学习笔记2--constexpr,类型别名,auto
constexpr:修饰常量表达式,约定修饰对象不仅为常量,而且在编译阶段就能得到值. 与const不同的是,constexpr约束的是当事人,就是说,constexpr int *a=1;这样的语句 ...
- 工欲善其事必先利其器系列之:在VS里面折叠js代码
之前用vs写js的时候经常因为js代码过长而且不能像cs文件里面的方法一样进行折叠而抓狂,直到在扩展库发现了这款插件有了它就可以把代码进行折叠了 插件地址
- Swift 动画学习笔记
视频地址: http://www.swiftv.cn/course/i275v5lz 1,动画属性 position(位置),opacity(透明度,0 全透明,1 不透明),Scale(尺寸),Co ...