zoukankan      html  css  js  c++  java
  • Spring基础06——依赖注入的一些细节

    1.字面值

           可用字符串表示的值,可以通过<value>元素标签或value属性进行注入。基本数据类型及其封装类,String类等类型都可以采取字面值注入的方式。若字面值包含特殊字符,可以使用<![CDATA[]]>把字面量包裹起来。

      

    1 <bean id="car1" class="com.wzy.beans.Car">
    2    <constructor-arg value="Audi" index="0" type="java.lang.String"/>
    3       <constructor-arg index="1" type="java.lang.String">
    4           <!--特殊字符需要用![CDATA[]]进行包裹-->
    5           <!--属性值可以使用value子节点进行配置-->
    6          <value><![CDATA[<<ShangHai]]></value>
    7      </constructor-arg>
    8    <constructor-arg value="200" index="2"  type="int"/>
    9 </bean>

    Java代码:

     1 private static void testHelloWorld3() {
     2         //1.创建Spring的IOC容器对象
     3         ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
     4 
     5         //2.从IOC容器中获取Bean实例
     6         Car car = (Car) ctx.getBean("car");
     7         System.out.println(car);
     8         car = (Car) ctx.getBean("car1");
     9         System.out.println(car);
    10     }

    输出结果:

    HelloWorlds Constructor...
    setName : Spring
    Car{brand='Audi', corp='ShangHai', price=3000000.0, maxSpeed=0}
    Car{brand='Audi', corp='<<ShangHai', price=0.0, maxSpeed=200}

    2.引用其他的Bean

           组成应用程序的bean经常需要相互协作以完成应用程序的功能,要使Bean能够相互访问,就必须在Bean配置文件中指定对Bean的引用。在bean的配置文件中,可以通过<ref>元素或ref属性为bean的属性或构造器参数指定对bean的引用。也可以在属性或构造器里包含bean的声明,这样的Bean称为内部Bean.

          

    spring.xml代码

     1 <bean id="person" class="com.wzy.beans.Person">
     2         <property name="name" value="wzy"/>
     3         <property name="age" value="26"/>
     4         <!--可以使用property的ref属性建立bean之间的引用关系,或者使用property子标签ref也是可以的-->
     5         <!--<property name="car" ref="car"/>-->
     6         <property name="car">
     7             <!--内部bean-->
     8             <bean class="com.wzy.beans.Car" id="car2">
     9                 <constructor-arg value="Ford"/>
    10                 <constructor-arg value="ChangAn"/>
    11                 <constructor-arg value="200000"/>
    12             </bean>
    13         </property>
    14         <!--级联属性赋值,注意:属性需要先初始化后才可以为级联属性赋值,否则会有异常,和Struts2不同-->
    15         <property name="car.maxSpeed" value="244"/>
    16         <!--<property name="car" >-->
    17         <!--<ref bean="car"/>-->
    18         <!--</property>-->
    19     </bean>

             内部bean:当Bean实例仅仅给一个特定的属性使用时,可以将其声明为内部Bean.内部Bean声明直接包含在<property>元素或<constructor-arg>元素里,不需要设置任何id或者name属性,内部Bean不能使用在其他任何地方。

     

          null值和级联属性可以使用专用的<null/>元素标签为Bean的字符串或其它对象类型的属性注入null值。(意义不大,因为很多类型默认值就是null)和Struts、Hiberanate等框架一样,Spring支持级联属性的配置,这里需要注意:级联属性赋值,注意:属性需要先初始化后才可以为级联属性赋值,否则会有异常。

  • 相关阅读:
    HDU 1068
    hdu6447
    HDU 6438
    网络赛的个人反思总结
    Bellman-ford 模板
    Pairs Forming LCM LightOJ
    POJ
    链式前向星
    POJ 3281 Dining
    游标遍历所有数据库循环执行修改数据库的sql命令
  • 原文地址:https://www.cnblogs.com/fengyun2019/p/10826526.html
Copyright © 2011-2022 走看看