1.字面值

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

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

Java代码:

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

输出结果:

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代码

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

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

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

最新文章

  1. alert样式修改
  2. Docker入门简介
  3. RabbitMQ 入门指南(Java)
  4. hashmap理解总结
  5. MIT算法导论——第四讲.Quicksort
  6. gradle中使用cobertura做代码覆盖(转)
  7. SpringSecurity自定义过滤器
  8. cin 对象取值过程详解
  9. IOS 状态栏(UIStatusBar)
  10. linux中/bin和/sbin和/usr/bin和/usr/sbin
  11. 申请安装阿里云免费SSL证书
  12. 第13章 切换到混合流并添加API访问 - Identity Server 4 中文文档(v1.0.0)
  13. 微信小程序开发的游戏《拼图游戏》
  14. 浅谈SPI总线
  15. (简单)华为M3青春 CPN-AL10的Usb调试模式在哪里打开的步骤
  16. canvas-9NonZeroAroundPrinciples2.html
  17. JS ——document、“或”、event(事件对象)
  18. docker容器中安装vim 、telnet、ifconfig, ping命令
  19. 同步fifo的Verilog实现
  20. Linux下使用Quagga(Zebra)搭建路由器记录(转)

热门文章

  1. SoapUI Pro官网原包百度云盘分享
  2. 函数式接口和Lambda表达式
  3. Android MQTT的发布与订阅
  4. modern php笔记---php (性状)
  5. leetcode-easy-array-122 best time to buy and sell stocks II
  6. 【flask-Email】邮件发送
  7. 阶段3 1.Mybatis_09.Mybatis的多表操作_1 mybatis表之间关系分析
  8. Delphi Tokyo 10.2.3发布了
  9. IntToHex
  10. vs2010发布网站时有些文件没有发布出去的解决办法。