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>&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"/>
时间: 2024-10-08 10:03:52

Spring IOC容器中注入bean的相关文章

spring IOC容器中装配Bean(XML)

——基于XML的配置 依赖注入 spring 依赖注入的方式有,属性注入和构造函数注入,还有不常用到的工厂方法注入. (1)属性注入 属性注入要求 Bean 提供默认的构造函数,并为需要的属性提供 set 方法,spring 先调用 Bean 的默认构造函数实例化 Bean 对象,然后通过反射的方法调用 set 方法注入属性值.如下简单的范例: public class Phone { private int id; private String name; private double pri

(spring-第2回)Spring的Schema,基于XML的配置(在IoC容器中装配Bean的前奏片)

要深入了解Spring机制,首先需要知道Spring是怎样在IoC容器中装配Bean的.而了解这一点的前提是,要搞清楚Spring基于Schema的Xml配置方案. 在深入了解之前,必须要先明白几个标签的意思(我会逐步引导读者理解,刚开始的懵懂无所谓,读者自会渐入佳境.初极狭,才通人.复行数十步,豁然开朗.). 什么是XML Schema? 用来描述 XML文档的结构,也被简称为XSD(XML Schema Definition),是一些规则的集合.(方式:通过定义schema文件 如 spri

spring在IoC容器中装配Bean详解

1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean实例放入bean缓存池: 应用程序使用bean. 1.2.基于xml的配置 (1)xml文件概述 xmlns------默认命名空间 xmlns:xsi-------标准命名空间,用于指定自定义命名空间的schema文件 xmlns:xxx="aaaaa"-------自定义命名空间,xx

String框架搭建的基本步骤,及从IOC容器中获取Bean

Spring框架的插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite(是一个压缩包)导入步骤: eclipse->help->Instal New Software->点击add,找到该压缩包->选择 Name下面选择带有 /Spring IDC 的多选框->取消最下边的选框  contact all...->next...->finish: 建立一个java project,在工程目录下(day-1

spring IOC 容器中 Bean 的生命周期

IOC 容器中 Bean 的生命周期: 1.通过构造器或工厂方法创建 Bean 实例2.为 Bean 的属性设置值和对其他 Bean 的引用3.调用 Bean 后置处理器接口(BeanPostProcessor),进行初始化前处理4.调用 Bean 的初始化方法5.调用 Bean 后置处理器接口(BeanPostProcessor),进行初始化后处理6.Bean 可以使用了7.当容器关闭时, 调用 Bean 的销毁方法8.在 Bean 的声明里设置 init-method 和 destroy-m

Spring 获取容器中的Bean

今天在用StringBoot 做异步推送项目的时候发现了一个问题,定义好的某个Bean无法通过applicatioContext.getBeansOfType. 找了一圈发现,这个Bean根本没有注入. 后来才发现定义的Bean忘记加@Component了.真是粗心大意害死人. 当你不知道这个Bean定义成什么好时,可以直接使用@Component,Spring会直接注入,一般情况下使用@Service @Mapper @Repository @Controller 某些情况下我们要获取 IOC

Spring(1)--在IoC容器中添加bean

〇.整体架构 一.装配Bean 1 <bean id="Foo" class="com.will.Foo"/> <!--使用id命名,不可id相同--> 2 <bean name="#Foo" class="com.will.Foo"/> <!--使用name命名,没有规范限制,而且可以重复,返回后面一个--> 3 <bean class="com.will.Fo

使得任何Bean在Spring IOC容器中可以访问request、session、global Session作用域,RequestContextListener

首先在web.xml配置 <web-app> ... <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> ... </web-app> 然后在你的Bean中获取request ... HttpServletRequest request = ((S

[Spring实战系列](6)配置Spring IOC容器的Bean

1. 简介 Spring提供了一个强大的IOC容器来管理组成应用的bean.为了利用容器服务,必须配置运行于Spring IOC容器中的Bean. 2. 解决方案 你可以通过XML文件,属性文件,注释甚至API来设置Spring IOC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能将其分割到多个配置文件中. 3. 创建Spring配置 正如前面所讲的,