1 Autowire自动装配
1.1 使用:只需在<bean>中使用autowire元素
<bean id="student" class="com.kejian.spring.bean.autowire.Student"
p:name="Tony" autowire="byName"></bean>

1.2 类型 
byName 目标bean的id与属性名一置,若不匹配置为null
byType 根据引用类型,若有多个bean无法装配,会抛异常
constructor(不推荐)

1.3 自动装配的缺点
若使用autowire装配bean ,则会装配全部属性;
autoName和autoType不能混合使用;
实际项目一般少用到

2 bean之间的关系
2.1 继承关系
2.1.1 可使用<bean>的parent属性配置继承父类(模板)
2.1.2 子bean可以继承父bean的属性,也可以覆盖部分属性
2.1.3 父bean可以作为实例,也可以作为模板,可以设置<bean>的abstract=true,则该bean为抽象bean,
不能被实例化,
2.1.4 父bean若没有设置任何属性,则默认为abstract

<bean id="subject" class="com.kejian.spring.bean.autowire.Subject" 
p:id="1" p:name="Chinese" abstract="true"></bean>

<bean id="subject2" class="com.kejian.spring.bean.autowire.Subject" 
parent="subject" p:id="2" p:name="History"></bean>

2.2 依赖关系
2.2.1 Spring允许通过使用depends-on属性设定bean的前置bean,依赖的bean必须在本bean实例化前创建好
2.2.2 如果依赖多个bean,可以使用逗号或空格的方式隔开
<!-- bean的依赖关系 -->
<bean id="student" class="com.kejian.spring.bean.autowire.Student"
p:name="Tim" p:subject-ref="subject3"></bean>

3 bean的作用域
3.1 默认为singleton,创建容器时就实例化好,每次获取时返回同一个实例
<bean id="car" class="com.kejian.spring.Car"
p:brand="ToYoTa" p:corp="GuangZhou" p:price="15" scope="prototype"></bean>

3.2 可以使用scope进行配置

4 使用外部属性文件
4.1 bean配置有时需要系统部署信息,如文件路径、数据源配置信息等,需要将其与bean配置文件分离
4.2 Spring 提供了一个 PropertyPlaceholderConfigurer 的 BeanFactory 后置处理器,可以使用外部属性文件,使用${var}
4.3 spring2.5后,可通过<context:property-placeholder> 直接使用PropertyPlaceholderConfigurer ,使用locaiton属性指明配置文件路径,需要引入context schema
<!-- 引入外部属性文件 -->
<context:property-placeholder location="db.properties"/>

db.properties与properties.xml必须同级目录,否则会报错,

class path resource [db.properties] cannot be opened because it does not exist

<!-- 使用外部属性 -->
<bean id="dataSource" class="com.kejian.spring.bean.properties.DataSource">
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="driverClass" value="${driver}"></property>
</bean>

Spring - 配置Bean - 自动装配 关系 作用域 引用外部属性文件的更多相关文章

  1. Spring4学习笔记 - 配置Bean - 自动装配 关系 作用域 引用外部属性文件

    1 Autowire自动装配 1.1 使用:只需在<bean>中使用autowire元素 <bean id="student" class="com.k ...

  2. 使用Spring IOC容器引用外部属性文件

    一.引用外部属性文件 1.编写属性文件,以键值对形式存储,并放置在类路径(src)下 jdbc.jdbcUrl=jdbc:mysql://localhost:3306/BOOKSTORE?rewrit ...

  3. IoC容器-Bean管理XML方式(引入外部属性文件)

    IoC操作Bean管理(引入外部属性文件) 1,直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池依赖jar包 2,通过引入外部属性文件配置数据库连接池 (1)创建外部属性文件,pro ...

  4. [spring]spring的bean自动装配机制

    7.bean的自动装配 是spring满足bean依赖的一种方式 spring会在上下文中自动寻找,并自动给bean装配属性 spring的装配方式: (1)手动装配 在people类中依赖了cat和 ...

  5. spring 使用外部属性文件

    一.PropertyPlaceholderConfigurer spring提供的PropertyPlaceholderConfigurer实现类能够使Bean在配置时引用外部属性文件. Proper ...

  6. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. 3.spring:自动装配/Bean之间的关系/作用域/外部文件/spel/

    1.自动装配/手动装配 xml配置文件里的bean自动装配 Spring IOC 容器里可以自动的装配Bean,需要做的仅仅是在<bean>的autowire属性里面指定自动装配模式 -& ...

  8. Spring(九):Spring配置Bean(二)自动装配的模式、Bean之间的关系

    XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式,模式包含:byType,byName, ...

  9. Spring XML配置里的Bean自动装配

    Spring自动装配 这段是我们之前编写的代码,代码中我们使用了P命名空间 并且使用手动装配的方式将car <bean id="address" class="cn ...

随机推荐

  1. August 31st 2016 Week 36th Tuesday

    A friend without faults will never be found. 没有缺点的朋友是永远找不到的. You can't find a friends without faults ...

  2. arcgis

    投影的时候两个选择: projected:平面的,以米为单位 另一个:球迷的,以经纬度为单位

  3. Linux vmstat字段解析

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  4. iOS高效调试

    写代码难免出现bug. 储备些调试技能绝对能够提高你的工作效率,让bug无所遁形.下面就和大家分享一些我在工作中常用的iOS调试小技能. 1. 打印 最简单,基础的调试方法就是打印日志了.贴出两段封装 ...

  5. Maven中手动引用第三方jar包

    有些jar包在Maven库中并不支持,但我们又需要.所以就必须手动引入. 可分为三步完成: 1 ,在项目目录下创建Lib,把引入的jar包加入. 2.在pom.xml中引入dependences. 如 ...

  6. Maven管理

    来自: http://www.cnblogs.com/bigtall/archive/2011/03/23/1993253.html.

  7. hdu 5585 Numbers

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5585 思路:对于2和5只须看最后一位数,对于三看所有位的数字之和就行 #include<stdi ...

  8. Mac系统下使用VirtualBox虚拟机安装win7--第三步 在虚拟机上安装 Windows 7

    第三步 在虚拟机上安装 Windows 7 等待虚拟机进入 Windows 7 的安装界面以后,在语言,货币,键盘输入法这一面,建议保持默认设置,直接点击“下一步”按钮,如图所示

  9. php 租房子练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. wireshark使用

    http://jingyan.baidu.com/article/7f41ececede744593c095c79.html