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/hibernate

jdbc.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的销毁方法.

   

Spring笔记--xml配置文件详解的更多相关文章

  1. spring applicationContext.xml 配置文件 详解

      <?xml version="1.0" encoding="UTF-8"?>   <beans xmlns="http://ww ...

  2. sqlMapConfig.xml配置文件详解

    sqlMapConfig.xml配置文件详解: Xml代码 Xml代码  <? xml version="1.0" encoding="UTF-8" ?& ...

  3. Spring 2.5配置文件详解(转)

    http://book.51cto.com/art/201004/193743.htm 6.2.3  Spring 2.5配置文件详解 Spring配置文件是用于指导Spring工厂进行Bean生产. ...

  4. AndroidManifest.xml配置文件详解(转载)

     AndroidManifest.xml配置文件详解 2013-01-05 10:25:23 分类: Android平台 AndroidManifest.xml配置文件对于Android应用开发来说是 ...

  5. struts2.0中struts.xml配置文件详解

    先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...

  6. maven学习(一)setting.xml配置文件详解

    maven环境搭建: 1.官网下载zip包,解压至任意目录(如:E:\wly\apache-maven-3.2.5) 2.环境变量MAVEN_HOME(E:\wly\apache-maven-3.2. ...

  7. 1-1 struts2 基本配置 struts.xml配置文件详解

    详见http://www.cnblogs.com/dooor/p/5323716.html 一. struts2工作原理(网友总结,千遍一律) 1 客户端初始化一个指向Servlet容器(例如Tomc ...

  8. log4j.xml配置文件详解

    一 log4j.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:c ...

  9. struts2中struts.xml配置文件详解【未整理】

    1.    深入Struts2的配置文件 本部分主要介绍struts.xml的常用配置. 1.1.    包配置: Struts2框架中核心组件就是Action.拦截器等,Struts2框架使用包来管 ...

随机推荐

  1. 提取bmp图片的颜色信息,可直接framebuffer显示(c版本与python版本)

    稍微了解了下linux的framebuffer,这是一种很简单的显示接口,直接写入像素信息即可 配置好的内核,会有/dev/fbn 的接口,于是想能否提前生成一个文件,比如logo.fb,里面仅包含像 ...

  2. Oracle_R12C_安装注意点_Win64_exectask

    安装问题1 原因 - 无法访问临时位置. 操作 - 请确保当前用户具有访问临时位置所需的权限. 附加信息: - 所有节点上的框架设置检查都失败 -原因: 问题的原因不可用 -操作:用户操作不可用 失败 ...

  3. Java实现文件在某个目录的检索

    package com.filetest; import java.io.File; import java.util.Date; import java.util.Scanner; public c ...

  4. IEEE/ACM ASONAM 2014 Industry Track Call for Papers

    IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 In ...

  5. SQL Server通过File Header Page来进行Crash Recovery

    SQL Server通过File Header Page来进行Crash Recovery 看了盖总的一篇文章 http://www.eygle.com/archives/2008/11/oracle ...

  6. ABP理论学习之异常处理

    返回总目录 本篇目录 介绍 开启错误处理 非Ajax请求 展示异常信息 UserFriendlyException Error模型 Ajax请求 异常事件 介绍 在一个web应用中,异常通常是在MVC ...

  7. IDisposable的另类用法

    IDisposable是.Net中一个很重要的接口,一般用来释放非托管资源,我们知道在使用了IDisposable的对象之后一定要调用IDisposable.Dispose()方法,或者使用.Net提 ...

  8. [翻译]理解Swift中的Optional

    原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你 ...

  9. 免杀后门之MSF&Veil-Evasion的完美结合

    本文由“即刻安全”投稿到“玄魂工作室” Veil-Evasion 是 Veil-Framework 框架的一部分,也是其主要的项目.利用它我们可以生成绕过杀软的 payload !kali 上并未安装 ...

  10. [.net 面向对象程序设计进阶] (1) 开篇

    [.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...