zoukankan      html  css  js  c++  java
  • 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>

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

  • 相关阅读:
    除了Web和Node,JavaScript还能做什么
    从Hybrid到React-Native: JS在移动端的南征北战史
    当React开发者初次走进React-Native的世界
    【React-Native】React-Native组件样式合集
    【github】论怎么去写一个高大上的ReadMe
    https://github.com/sindresorhus/awesome-nodejs 清单
    https://github.com/akullpp/awesome-java 清单
    https://github.com/ChristosChristofidis/awesome-deep-learning 清单
    https://github.com/josephmisiti/awesome-machine-learning 清单
    SpringBoot 为什么能够自动的注入一些常用的Bean ?详细分析SpringBoot 自动配置的实现
  • 原文地址:https://www.cnblogs.com/instead-everyone/p/13860103.html
Copyright © 2011-2022 走看看