Spring - 配置Bean - 自动装配 关系 作用域 引用外部属性文件
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 - 自动装配 关系 作用域 引用外部属性文件的更多相关文章
- Spring4学习笔记 - 配置Bean - 自动装配 关系 作用域 引用外部属性文件
1 Autowire自动装配 1.1 使用:只需在<bean>中使用autowire元素 <bean id="student" class="com.k ...
- 使用Spring IOC容器引用外部属性文件
一.引用外部属性文件 1.编写属性文件,以键值对形式存储,并放置在类路径(src)下 jdbc.jdbcUrl=jdbc:mysql://localhost:3306/BOOKSTORE?rewrit ...
- IoC容器-Bean管理XML方式(引入外部属性文件)
IoC操作Bean管理(引入外部属性文件) 1,直接配置数据库信息 (1)配置德鲁伊连接池 (2)引入德鲁伊连接池依赖jar包 2,通过引入外部属性文件配置数据库连接池 (1)创建外部属性文件,pro ...
- [spring]spring的bean自动装配机制
7.bean的自动装配 是spring满足bean依赖的一种方式 spring会在上下文中自动寻找,并自动给bean装配属性 spring的装配方式: (1)手动装配 在people类中依赖了cat和 ...
- spring 使用外部属性文件
一.PropertyPlaceholderConfigurer spring提供的PropertyPlaceholderConfigurer实现类能够使Bean在配置时引用外部属性文件. Proper ...
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 3.spring:自动装配/Bean之间的关系/作用域/外部文件/spel/
1.自动装配/手动装配 xml配置文件里的bean自动装配 Spring IOC 容器里可以自动的装配Bean,需要做的仅仅是在<bean>的autowire属性里面指定自动装配模式 -& ...
- Spring(九):Spring配置Bean(二)自动装配的模式、Bean之间的关系
XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式,模式包含:byType,byName, ...
- Spring XML配置里的Bean自动装配
Spring自动装配 这段是我们之前编写的代码,代码中我们使用了P命名空间 并且使用手动装配的方式将car <bean id="address" class="cn ...
随机推荐
- HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大递增子序列
DP基础题 DP[i]表示以a[i]结尾所能得到的最大值 但是a[n-1]不一定是整个序列能得到的最大值 #include <bits/stdc++.h> using namespace ...
- 在Win7下使用sphinx-build建立开源软件文档
最近想看看odoo的使用文档,在线看不方便,而且还没有提供离线文档下载,由于是开源项目,此项目托管在Github上,于是就有了想通过Github把文档git下来,可是git下来的文档是.rst文件,无 ...
- ios企业应用发布流程
转载自:http://blog.csdn.net/justinjing0612/article/details/8758692留作备忘 企业发布app的 过程比app store 发布的简单多了,没那 ...
- yii php 图片上传与生成缩略图
今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图 ($pic_action_url = $this->createAbsoluteUrl('h ...
- iOS MD5加密
1.MD5加密 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321 ...
- Cannot return from outside a function or method
最近发现myeclipse10中有几处bug 比如: Cannot return from outside a function or method onClick="return chec ...
- SQLServer子查询
in谓词子查询 select * from dbo.Worker where did in (select dID from DepartMent) 比较运算子查询 select * from Wor ...
- SQLServer之数据类型
1.整数数据类型整数数据类型是常用的数据类型之一,主要用于存储数值,可以直接进行数据运算而不必使用函数转换.(1).bigint 每个bigint存储在8个字节中,其中一个二进制位表示符号位,其它63 ...
- Android N 新特性 + APP开发注意事项
1. 多窗口MultiWindow 多窗口MultiWindow,这是Android N里对开发者影响比较大的特性,也是大家疑问比较多的地方.站在开发者的角度其实不必太担心这个特性会导致我们需要修改很 ...
- 【转载】Pyqt 添加右键菜单方法
转载地址: http://www.cnblogs.com/yogalau/p/3954042.html?utm_source=tuicool QListWidget 是继承 QWidget 的, 所以 ...