Spring基础06——依赖注入的一些细节
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支持级联属性的配置,这里需要注意:级联属性赋值,注意:属性需要先初始化后才可以为级联属性赋值,否则会有异常。
Spring基础06——依赖注入的一些细节的更多相关文章
- Spring基础—— 泛型依赖注入
一.为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入. 二.泛型依赖注入:子类之间的依赖关系由其父类泛型以及父类之 ...
- Spring 基础知识 - 依赖注入
所谓的依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖. 依赖注入主要目的是为了解耦,体现了一种“组合”的理念. 无论是xml配置.注解配置还是Ja ...
- spring六种种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework的依赖注入和控制反转
Dependency Injection and Inversion of Control 1.概述: 1.1相关概念 bean:由IoC容器所管理的对象,也即各个类实例化所得对象都叫做bean 控制 ...
- 谈谈自己了解的spring.NET的依赖注入
spring.net里实现了控制反转IOC(Inversion of control),也即依赖注入DI(Dependency Injection),以达到解耦的目的,实现模块的组件化.程序 ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(一)——Spring中的依赖注入简介【转】
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- spring.NET的依赖注入
谈谈自己了解的spring.NET的依赖注入 spring.net里实现了控制反转IOC(Inversion of control),也即依赖注入DI(Dependency Injection), ...
- spring 四种依赖注入方式以及注解注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
随机推荐
- (转)python selenium-webdriver 元素操作之鼠标和键盘事件
参考资料:https://blog.csdn.net/zh175578809/article/details/76767748 参考资料2:https://blog.csdn.net/qq_41817 ...
- sqli-lab(8)
布尔型单引号GET盲注 发现加个单引号跟没加显示不一样,加了单引号连you are in都不显示了,没有报错,所以只能用盲注判断了 0X01爱之先了解 盲注需要掌握一些MySQL的相关函数:lengt ...
- @清晰掉 GNU C __attribute__
__attribute__((packed))详解 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有 ...
- JavaScript 事件不触发
在class上绑定的事件,点击图片的时候无法触发 <div id="files" class="files"> <div> <p& ...
- eclipse有时候导入了包,但是还是有红线,找不到
clean一下工程,选择project->clean->clean project selected blow并且选择build only the selected project
- 为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢
常用MIME类型(Flv,Mp4的mime类型设置) 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢?这就表明mp ...
- 淘淘相关工具类【json,httpClient,id,FTP,exception,cookie(包括共享cookie的设置等)】
json package com.taotao.common.utils; import java.util.List; import com.fasterxml.jackson.core.JsonP ...
- Linux_IPtables防火墙详解
目录 目录 Iptables Iptables结构 规则表 规则链 iptables指令用法详解 综合案例 SNAT 策略 DNAT 策略 Iptables规则的备份和还原 iptables 练习 I ...
- Jmeter之非GUI模式(命令行)执行
在使用Jmeter进行性能测试时,建议使用非GUI模式执行. 命令行启动 1.进入jmeter安装的bin目录 2.执行Jmeter命令 如下: (1.jmeter.bat -n -t E:\apac ...
- Debian或者Ubuntu中安装secureCRT/secureFX
1.官网下载 ubuntu 下的 xx.deb安装包.此处使用的安装包是scrt-sfx-8.5.4-1942.ubuntu16-64.x86_64.deb,点击下载,提取码:5em3. 2.安装 d ...