IOC接口Bean属性注入XML

  IOC接口Bean属性注入XML:

一:什么是Bean管理:

  1. Bean管理指的是;两个操作:

  2. Spring创建对象

  3. Spring注入属性

二:基于XML方式创建对象

<bean id="user" class="com.spring_test.User"></bean>

  1)在配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象的创建

  2)bean中常用的属性:

    1. id属性:唯一标识,就是你创建的对象名是什么,id就填什么

    2. class属性:类全路径(包含类路径)

    3. name属性:其实跟id一样,就是name可以添加一些特殊符号

注意:创建对象的时候,默认也是执行无参数构造方法创建的

三:基于XML方式注入属性:

(1)DI:依赖注入,就是注入属性

    1)第一种注入方式:使用set方法注入,在XML中使用property完成对属性的注入,依次类推,举一反三

Book类:

public class Book{
    private String bname;
    public void setBname(String bname){
        this.bname=bname;
    }
}

xml配置注入以及创建:

<!--创建Book对象创建-->
<bean id="book" class="com.spring_test">
    <!--使用property完成属性注入
        name:类里面属性名称
        value:向属性注入的值
    -->
    <property name="bname" value="hanxiao"></property>
</bean>

注意:如何获取配置创建的对象

Book book=content.getBean("book",Book.class);
//这里是将Bean返回后的对象转换程class的形式

 

    2)第二种注入方式:通过有参构造进行XML注入

    也就是在上面的Book中加一个带有参数的构造函数就好了

XML配置文件配置:

<bean id="book" class="com.spring_test">
    <!--
        比如这里有只有一个有参构造,注入dname
        使用constructor-arg标签来获取有参构造的参数以及注入的值
        name:构造函数中的属性名称
        index:有参构造中参数的个数次序
        value:属性名称的值
下面这两句话是等效的
    -->
    <constructor-arg name="dname" value="myname"></constructor-arg>
    <constructor-arg index="1" value="myname"></constructor-arg>
</bean>

    3)第三种XML注入方式:p名称空间注入

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       <!--这一步就是进行了一个对p的约束声明-->
       xmls:p="http://www.w3.org/2001/XMLSchema-instance/p"
<!--然后就可以在bean创建对象的时候在后面直接传入参数就好-->
<bean id="hello" class="com.spring_test.Hello" p:bname="hanxiao"></bean>

</beans>

  主要步骤:在约束声明中加上对p的声明,然后再创建的对象后面使用p:参数=“参数值”

 

  补充重点:**传递参数若带特殊符号:**

    也已使用CDATA方法在配置文件XML中来传递

<property name="address">
    <value>
        <![CDATA[<<南京>>]]>
    </value>
</property>

    就是上面这种写法,记住,要考的哦

原文地址:https://www.cnblogs.com/instead-everyone/p/13860103.html