Spring IOC容器中注入bean
一、基于schema格式的注入
1、基本的注入方式 (属性注入方式)
根据setXxx()方法进行依赖注入,Spring只会检查是否有setter方法,是否有对应的属性不做要求
<bean id="student" class="com.lq.ioc.Student">
<property name="name" value="zhansan"></property>
<property name="age" value="20"></property>
</bean>
<bean id="student" class="com.lq.ioc.Student">
<property name="name">
<value>zhangsan</value>
</property>
<property name="age">
<value>20</value>
</property>
</bean>
2.构造函数方式注入
<bean id="student1" class="com.lq.ioc.Student">
<constructor-arg name="name" value="zhangsan"></constructor-arg>
<constructor-arg name="age" value="20"></constructor-arg>
</bean>
<bean id="student1" class="com.lq.ioc.Student">
<constructor-arg type="java.lang.String"><value>lisi</value></constructor-arg>
<constructor-arg type="int"><value>15</value></constructor-arg>
</bean>
<bean id="student1" class="com.lq.ioc.Student">
<constructor-arg index="0" value="zhangsan"></constructor-arg>
<constructor-arg index="1" value="21"></constructor-arg>
</bean>
3.当注入的属性中含有xml中的特殊字符时,如: < > & " '
1.用<![CDATA[<wangwu>]]>
<bean id="student1" class="com.lq.ioc.Student">
<constructor-arg index="0">
<value><![CDATA[<wangwu>]]></value>
</constructor-arg>
<constructor-arg index="1" value="21"></constructor-arg> </bean>
2.用转义字符

<bean id="student1" class="com.lq.ioc.Student">
<property name="name">
<value><wang></value>
</property>
<property name="age" value="11"></property>
</bean>
4.引用其它bean
<bean id="school" class="com.lq.ioc.School"/>
<bean id="student1" class="com.lq.ioc.Student">
<property name="name">
<value><wang></value>
</property>
<property name="age" value="11"></property>
<property name="school" ref="school"></property> </bean>
5.内部bean
<bean id="student1" class="com.lq.ioc.Student">
<property name="name">
<value><wang></value>
</property>
<property name="age" value="11"></property>
<property name="school">
<bean id="school" class="com.lq.ioc.School"/>
</property>
</bean>
6.往bean中注入null
<property name="name">
<null/>
</property>
7.集合类属性
List
<bean id="school" class="com.lq.ioc.School">
<property name="name" value="ql"/>
<property name="student">
<list>
<ref bean="student1"/>
</list>
</property>
</bean>
set
<bean id="school" class="com.lq.ioc.School">
<property name="name" value="ql"/>
<property name="student">
<set>
<ref bean="student1"/>
</set>
</property>
</bean>
map
<bean id="school" class="com.lq.ioc.School">
<property name="name" value="ql"/>
<property name="student">
<map>
<entry>
<key><ref bean="student1"/></key>
<value>1</value>
</entry> </map>
</property>
</bean>
props
<bean id="school" class="com.lq.ioc.School">
<property name="name" value="ql"/>
<property name="student">
<props>
<prop key="student1">zhansa</prop>
<prop key="student2">lisi</prop>
</props>
</property>
</bean>
8.通过util配置集合
<util:properties id="List1">
<prop key="student1">zzz</prop>
<prop key="student2">lisi</prop>
</util:properties>
9.工厂类注入
<bean id="studentFactory" class="com.lq.ioc.StudentFactory"/>
<bean id="student" factory-bean="studentFactory"
factory-method="createStudent"/>
静态工厂类注入
<bean id="student" class="com.lq.ioc.StudentFactory"
factory-method="createStudent"/>
10.配置数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://localhost/sampledb"
p:username="root"
p:password="123"/>
Spring IOC容器中注入bean的更多相关文章
- Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean
Spring 中有两种类型的 bean , 一种是普通的 bean , 另一种是工厂 bean , 即 FactroyBean. 工厂 bean 跟普通 bean 不同 , 其返回的对象不是指定类的一 ...
- spring在IoC容器中装配Bean详解
1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean ...
- spring 在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property
spring 在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property
- Spring IOC容器分析(4) -- bean创建获取完整流程
上节探讨了Spring IOC容器中getBean方法,下面我们将自行编写测试用例,深入跟踪分析bean对象创建过程. 测试环境创建 测试示例代码如下: package org.springframe ...
- spring给容器中注入组件的几种方式
目录 环境搭建 spring给容器中注入组件 1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)适用于把自己写的类加入组件(默认ID类名 ...
- 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean
[spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>sp ...
- Spring扩展:替换IOC容器中的Bean组件 -- @Replace注解
1.背景: 工作中是否有这样的场景?一个软件系统会同时有多个不同版本部署,比如我现在做的IM系统,同时又作为公司的技术输出给其他银行,不同的银行有自己的业务实现(比如登陆验证.用户信息查询等) ...
- spring IOC 容器中 Bean 的生命周期
IOC 容器中 Bean 的生命周期: 1.通过构造器或工厂方法创建 Bean 实例 2.为 Bean 的属性设置值和对其他 Bean 的引用 3.调用 Bean 后置处理器接口(BeanPostPr ...
- Spring IOC容器中Bean的生命周期
1.IOC容器中Bean的生命周期 构造器函数 设置属性 初始化函数(在Bean配置中 init-method) 使用Bean 结束时关闭容器(在Bean中配置destroy-method) 2.Be ...
随机推荐
- C语言中数据类型取值范围的计算的理解与总结
c语言中,数据类型有short,int,long,char,float,double,然后除了浮点型只有 有符号数(signed)外,其他的数据类型都分为有符号(signed)和无符号(unsigne ...
- connectionString加密
首先是加密,解密类. using System; using System.Collections.Generic; using System.IO; using System.Linq; using ...
- 源码阅读笔记 - 1 MSVC2015中的std::sort
大约寒假开始的时候我就已经把std::sort的源码阅读完毕并理解其中的做法了,到了寒假结尾,姑且把它写出来 这是我的第一篇源码阅读笔记,以后会发更多的,包括算法和库实现,源码会按照我自己的代码风格格 ...
- 【php】assert函数的用法
[php]assert函数的用法 http://www.douban.com/note/217557007/ 2012-06-01 10:32:37 assert这个函数在php语言中是用来判断一 ...
- mac下删除svn账号
以mac os x为例(Unix/Linux类似), 1.打开命令行窗口,即用户的根目录(用户的home目录) $ ls -al drwxr-xr-x 6 linxyz staff 204 ...
- zookeeper启动。
package com.autonavi.tinfo.traffic.zookeeper; import java.util.Arrays; import java.util.Collections; ...
- PDF 生成插件 flying saucer 和 iText
最近的项目中遇到了需求,用户在页面点击下载,将页面以PDF格式下载完成供用户浏览,所以上网找了下实现方案. 在Java世界,要想生成PDF,方案不少,所以简单做一个小结吧. 在此之前,先来勾画一下我心 ...
- python与正则表达式:re模块详解
re模块是python中处理正在表达式的一个模块 正则表达式知识储备:http://www.cnblogs.com/huamingao/p/6031411.html 1. match(pattern, ...
- zedboard如何从PL端控制DDR读写(五)
有了前面的一堆铺垫.现在终于开始正式准备读写DDR了,开发环境:VIVADO2014.2 + SDK. 一.首先要想在PL端通过AXI去控制DDR,我们必须要有一个AXI master,由于是测试,就 ...
- Linux: vi 编辑器中文乱码
[问题] vi编辑器中文乱码 [解决方案] vi /etc/sysconfig/i18n改成如下即可:LANG="en_US.UTF-8"LANGUAGE="zh_CN. ...