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>

  

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标签中有和,为bean指定初始化和销毁方法.当设置了这两个属性后,bean的生命周期是这样的:

创建bean实例->为bean的属性设置值,或对其他bean进行引用->调用bean的初始化方法->根据需要调用bean自己的方法(使用bean)->容器关闭时,调用bean的销毁方法.

参考网址http://www.cnblogs.com/ioufev/p/9950768.html

Spring配置文件XML详解的更多相关文章

  1. Spring web.xml详解

    web.xml文件是Java Web项目中的一个配置文件,主要用于配置欢迎页.Filter.Listener.Servlet等,但并不是必须的,一个Java Web项目没有web.xml文件也是照样能 ...

  2. 一份spring配置文件及其详解

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/axu20/archive/2009/10/14/4668188.aspx 1.基本配置:<?xml versio ...

  3. MyBatis总结四:配置文件xml详解

    XML 映射配置文件 MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 ...

  4. spring applicationContext.xml详解及模板

    applicationContext.xml 文件   1.<context:component-scan base-package="com.eduoinfo.finances.ba ...

  5. log4j2配置文件log4j2.xml详解(转载)

    此博文转载自阿豪聊干货:https://www.cnblogs.com/hafiz/p/6170702.html 一.背景 最近由于项目的需要,我们把log4j 1.x的版本全部迁移成log4j 2. ...

  6. ssh2的application.xml配置文件配置详解

    ssh2的application.xml配置文件配置详解   1.导入其他的配置文件.在ssh项目中可以导入其他的配置文件,导入的格式为: <import resource="clas ...

  7. Tomcat配置(二):tomcat配置文件server.xml详解和部署简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  8. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

  9. logback的使用和logback.xml详解,在Spring项目中使用log打印日志

    logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分 ...

随机推荐

  1. impdp导入文件失败问题解决(ORA-39001/ORA-39000/ORA-39143)

    测试环境 SuSE11 + ORACLE11gR2 问题现象 执行 impdp导入现场导回的dmp文件,导入失败.错误提示如下 $impdp sysdb/oracle directory=imp_da ...

  2. LeetCode OJ 19. Remove Nth Node From End of List

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  3. search() 方法解析

    search()方法支持正则表达式的String对象的方法. 好,我们直接来贴代码,看效果,从实践理解透析方法的知识点和实际运用. var str="Visit W3School!" ...

  4. Android计时器和倒计时

    Android计时器和倒计时 计时器两个核心类 Timer 和 TimerTask 1) Timer核心方法 Java代码  //Schedules the specified task for ex ...

  5. 认识 Thymeleaf

  6. 吴裕雄 26-MySQL 复制表

    如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等. 如果仅仅使用CREATE TABLE ... SELECT 命令,是无法实现的.本章节将为大家介绍如何完整的复制MySQL数据 ...

  7. js 提示条

    js: var Persen = { timeUptopBar:function(fun) { var obj = $('.top-alert'); obj.fadeOut(1500,function ...

  8. canvas画布内部重复画圆

    <!DOCTYPE html><html><head> <title>canvas example</title> <meta cha ...

  9. httpd无法加载libphp5.so模块

    安装httpd-2.2.8 和php-5.2.5,一切顺利. 最后一步重新启动apache报如下错误: httpd: Syntax error on line 53 of /usr/local/apa ...

  10. 04_web基础(五)之cookie与session

    29.Http协议无记忆带来的问题 什么是会话:可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一次会话. 在一 ...