zoukankan      html  css  js  c++  java
  • Spring属性注入

    对于类成员变量,注入方式有三种:

    • 构造函数注入
    • 属性setter方法注入
    • 接口注入

    Spring支持前两种

    构造函数注入

    <bean id="user" class="com.demo.ioc.user">

      <constructor-arg name="name" value="张三"/>

      <constructor-arg name="age" value="23"/>

    </bean>

    属性注入

    属性setter方法注入

    <bean id="person" class="com.Person">

        <property name="name" value="里斯"/>

        <property name="age" value="32">

        <property name="cat" ref="cat">

    </bean>

    <bean id="cat" class="com.Cat">

        <property name="name" value="ketty"/>

    </bean>

    p名称

    • 使用p命名空间
    • 为了简化XML文件配置,Spring从2.5开始引入一个新的p名称空间
    • p:<属性名> = "xxx"引入常量值
    • p:<属性名> - ref="xxx"引用其他Bean对象

    在命名空间中添加

    xmlns="http://www.springframework.org/schema/p"

    <bean id="person" class="com.demo.Person"  p:name="大黄"/>

    <bean id="cat" class="com.demo.cat" p:name="小黄"/>

    SpEL注入

    • SpEL:spring expression language ,spring表达式语言,对依赖注入进行简化
    • 语法:#{表达式}
    • <bean id="" value="#{表达式}">

    SpEL表达式语言

      语法:#{}

      #{'hello'}:使用字符串

      #{beanId}:使用另一个bean

      #{beanId.content.toUpperCase()}:使用指定名属性,并调用它的方法

      #{T(java.lang.Math).PI}:使用静态字段或方法

    <bean>
        <property name="name" value="#{服装}"/>
    </bean>
    <bean id="productInfo" class=""/>
    <bean>
        <property name="name"/>
        <property name="price" value="#{productInfo.calculatePrice()}">
        <property name="category" value="#{category}"/>
    </bean>
    

      

    复杂类型的属性注入

    1.数组类型的属性注入

    2.List集合类型的属性注入

    3.Set集合类型的属性注入

    4.Map集合类型的属性注入

      <!--集合类型的属性注入-->
        <bean id="collectionBean" class="">
            <!--数组类型-->
            <property name="arrs">
                <list>
                    <value>aaa</value>
                    <value>bbb</value>
                    <value>ccc</value>
                </list>
            </property>
            <!--List集合的属性注入-->
            <property name="list">
                <list>
                    <value>111</value>
                    <value>222</value>
                    <value>333</value>
                </list>
            </property>
            <!--Map集合的属性注入-->
            <property name="map">
                <map>
                    <entry key="aaa" value="111"/>
                    <entry key="bbb" value="222"/>
                    <entry key="ccc" value="333"/>
                </map>
            </property>
            <!--Properties的属性注入-->
            <property name="properties">
                <props>
                    <prop key="username">root</prop>
                    <prop key="password">1234</prop>
                </props>
            </property>
        </bean>
    

       

  • 相关阅读:
    为什么java使用对象序列化到文件,打开之后是乱码,而且更换编码格式查看也不能正常显示呢
    String类能够导入IDEA,但是里面的构造方法无法使用,一直显示报错
    IDEA不能提示导入java.io.File类,但是自己手写import没问题,最后找到了问题所在
    扑克牌发牌,排序的功能实现
    TFS 生成定义
    Git-tfs工具
    日期和时间
    调用惯例
    优化查找和排序
    使用更好的库
  • 原文地址:https://www.cnblogs.com/yangHS/p/11384408.html
Copyright © 2011-2022 走看看