一、基于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>&lt;wang&gt;</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>&lt;wang&gt;</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>&lt;wang&gt;</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的更多相关文章

  1. Spring学习--实现 FactoryBean 接口在 Spring IOC 容器中配置 Bean

    Spring 中有两种类型的 bean , 一种是普通的 bean , 另一种是工厂 bean , 即 FactroyBean. 工厂 bean 跟普通 bean 不同 , 其返回的对象不是指定类的一 ...

  2. spring在IoC容器中装配Bean详解

    1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean ...

  3. spring 在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property

    spring  在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property

  4. Spring IOC容器分析(4) -- bean创建获取完整流程

    上节探讨了Spring IOC容器中getBean方法,下面我们将自行编写测试用例,深入跟踪分析bean对象创建过程. 测试环境创建 测试示例代码如下: package org.springframe ...

  5. spring给容器中注入组件的几种方式

    目录 环境搭建 spring给容器中注入组件 1.包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)适用于把自己写的类加入组件(默认ID类名 ...

  6. 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean

    [spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>sp ...

  7. Spring扩展:替换IOC容器中的Bean组件 -- @Replace注解

    1.背景:     工作中是否有这样的场景?一个软件系统会同时有多个不同版本部署,比如我现在做的IM系统,同时又作为公司的技术输出给其他银行,不同的银行有自己的业务实现(比如登陆验证.用户信息查询等) ...

  8. spring IOC 容器中 Bean 的生命周期

    IOC 容器中 Bean 的生命周期: 1.通过构造器或工厂方法创建 Bean 实例 2.为 Bean 的属性设置值和对其他 Bean 的引用 3.调用 Bean 后置处理器接口(BeanPostPr ...

  9. Spring IOC容器中Bean的生命周期

    1.IOC容器中Bean的生命周期 构造器函数 设置属性 初始化函数(在Bean配置中 init-method) 使用Bean 结束时关闭容器(在Bean中配置destroy-method) 2.Be ...

随机推荐

  1. C#后台程序重启IIS,发邮件通知

    应用场景:IIS网站挂掉,系统自动重启IIS,通知相关联系人: 主要代码: 监控类 public class monitoringiis { EmailSend send = new EmailSen ...

  2. IEA For PCS7

    1. IEA简介 PCS7中的Import/Export Assistant (IEA) 软件是对大量数据进行合理工程组态的有效工具,它以过程标签类型的多重使用和实例解决方案为基础.该软件特别适用于具 ...

  3. 初学RabbitMQ

    一.RabbitMQ中的一些概念 (1)Connection(连接) 与RabbitMQ建立连接,由ConnectionFactory创建每个Connection至于一个物理server进行连接,此链 ...

  4. IOS跳转设置页面及其他各种跳转页面设置

    转载来源 CocoaChina 跳到更多设置界面 除了跳到WiFi设置界面,能不能跳到其他的设置界面呢?比如:定位服务.FaceTime.音乐等等.都是可以的,一起来看看如何实现的! 定位服务 定位服 ...

  5. emacs使用 simple-httpd和impatient-mode插件实现livereload

    现在用emacs写前段,自然想实现那种,编辑器里编辑,然后浏览器端页面自己刷新 使用 simple-httpd 和impatient-mode 两个插件,可以实现, 按照文档安装好使用就可以,我没找到 ...

  6. buildbot的codebaseGenerator

    buildbot的codebaseGenerator文档非常简单,简单到令人发指. 也没有一个例子,唉,辛苦了好几个小时才研究清楚怎么设置. 赶紧记录下吧,不然下次又要纠结. 应用场景:web sta ...

  7. 使用input=file上传

    前台,form的target指向iframe <form action="/EmailHandler.ashx?action=upload" id="form1&q ...

  8. DevExpress ChartControl大数据加载时有哪些性能优化方法

    DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...

  9. XE6移动开发环境搭建之IOS篇(8):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 安装PAServer ...

  10. Django学习笔记(一)

    1.$python manage.py runserver 0.0.0.0:8000  开放所有IP $python manage.py runserver 8000 制定开放的端口 2.报错信息: ...