spring注入参数详解
spring注入参数详解
在Spring配置文件中, 用户不但可以将String, int等字面值注入到Bean中, 还可以将集合, Map等类型的数据注入到Bean中, 此外还可以注入配置文件中定义的其他Bean.
1.字面值
"字面值"一般是指可用字符串表示的值, 这些值可通过<value>元素标签进行注入. 基本数据类型及其封装类, String等类型都可以采用字面值注入的方式.
注入字面值:
<bean id="car" class="com.attr.Car">
<property name="brand" value="奥迪"/>
<property name="color" value="黑色"/>
<property name="maxSpeed" value="300"/>
</bean>
2.引用其他Bean
Spring IoC容器中定义的Bean可以相互引用. 例如Boss类中拥有一个Car类型的属性.
public class Boss {
private Car car;
public void setCar(Car car) {
this.car = car;
}
}
boss的Bean可通过<ref>元素引用car Bean, 建立起boss对car的依赖.
<!--car Bean -->
<bean id="car" class="com.attr.Car"/>
<bean id="boss" class="com.attr.Boss">
<-- 引用car Bean -->
<property name="car" ref="car"/>
</bean>
<ref>元素可以通过以下三个属性引用容器中其他Bean:
(1) bean: 通过该属性,可以应用同一容器或者父容器中定义的其他bean
(2) local: 通过该属性, 只能引用同一配置文件中定义的其他bean, 它可以利用Xml解析器自动检验引用的合法性.`
(3) parent: 只能引用父容器中的bean, 如<ref parent="car">的配置说明car的Bean是父容器中的bean
如果car Bean只被boss Bean引用而不会被容器中任何其他的Bean引用, 则可以将car以内部Bean的方式注入到Boss中:
<bean id="boss" class="com.attr.Boss">
<property name="car">
<bean class="com.attr.Car">
<property name="brand" value="奥迪"/>
<property name="maxSpeed" value="300"/>
</bean>
</property>
</bean>
内部bean即使提供了id, name, scope属性, 也会被忽略, scope默认为prototype类型
spring注入参数详解的更多相关文章
- spring中Bean的注入参数详解
字面值 一般指可用字符串表示的值,这些值可以通过<value>元素标签进行注入.在默认情况下,基本数据类型及其封装类.String等类型都可以采取字面值注入的方式,Spring容器在 ...
- 《精通Spring4.X企业应用开发实战》读后感第五章(注入参数详解)
- Spring Boot启动命令参数详解及源码分析
使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...
- Spring事务Transaction配置的五种注入方式详解
Spring事务Transaction配置的五种注入方式详解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学 ...
- Spring RestController 请求参数详解
Spring RestController 请求参数详解 引用作者jpfss 在阅读之前,最好先了解http请求的get,post,以及各种head头类型,请求参数类型. 无参数,设置RestCont ...
- SpringBoot之Spring@Value属性注入使用详解
在使用Spring框架的项目中,@Value是使用比较频繁的注解之一,它的作用是将配置文件中key对应的值赋值给它标注的属性.在日常使用中我们常用的功能都比较简单,本篇文章系统的带大家来了解一下@Va ...
- Spring Boot 配置文件详解
Spring Boot配置文件详解 Spring Boot提供了两种常用的配置文件,分别是properties文件和yml文件.他们的作用都是修改Spring Boot自动配置的默认值.相对于prop ...
- Spring DI使用详解
Spring DI使用详解 一.介绍 DI的定义:依赖注入,为类里面的属性设值.例如,我们之前的setName方法就是在为name属性设值. IOC与DI的关系:IOC进行对象的创建,DI进行值的注入 ...
- (转)Spring JdbcTemplate 方法详解
Spring JdbcTemplate方法详解 文章来源:http://blog.csdn.net/dyllove98/article/details/7772463 JdbcTemplate主要提供 ...
随机推荐
- SQL百分比
百分比=cast(cast(count(ProvinceName)*100./ (select count(Id) from dbo.TopicCurrent where boardId=316 ...
- C++: getline函数
转自http://blog.sina.com.cn/s/blog_60263c1c0101ck25.html 学习C++的同学可能都会遇到一个getline()函数,譬如在C++premer中,标准s ...
- 经过本人 6 年.net 工作经验证明 .net 工资确实比 Java 低
很久没有逛博客园了,很久没有出来吐槽了.怎么呢?生活压力大,就需要找地方吐槽. 排版不怎么好,文笔不怎么好,可以看出我不是雇佣的写手. 工作到今夏,已经有6个年头了,一直使用着.net技术,但是最近工 ...
- logging
#coding=utf8 import sys, logging logging.basicConfig(level=logging.INFO, forma ...
- getResource().getPath()返回的路径空格变成了 %20
this.getClass().getResource(“/”).getPath()使用者方法查看文件在服务器上的地址,但是地址中的空格会被转化为%20. 解决办法1: URI uri = new U ...
- beta阶段组间的140字互评
第一名:连连看 理由:此项目组的技术难度最大,而且在游戏背景和界面上有很大的改进,观赏性和趣味性很足. 第二名:新蜂 理由:俄罗斯方块游戏能运行,新增加了暂停和分数显示的功能,就是界面不是很美观. 第 ...
- archlinux安装输入法需要的包及archlinux无法使用输入法的解决
所需的包: fcitx #这货应该是主要的程序 fcitx-configtool #图形化的配置工具,非必须 fcitx-gtk2 fcitx-gtk3 fcitx-qt4 fcitx-qt5 fci ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON color_fuses2
zw版[转发·台湾nvp系列Delphi例程]HALCON color_fuses2 procedure TForm1.Button1Click(Sender: TObject);var w, h : ...
- PIC18F中断定时器
//基于MCC18编译器,使用HI-PICC不可用 //-------------------------------------------- #include <p18F452.h> ...
- update表关联
第一种: update student set student.age =(select `user`.age from user where id=student.id ) where studen ...