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主要提供 ...
随机推荐
- Snapchat面经(师兄的)
给一个LinkedList环,给其中任一个节点的reference,求删去LinkedList中所有value=k的点 我的想法:假设给定的点事ListNode oneNode, 设置ListNode ...
- Lintcode: Sort Letters by Case
Given a string which contains only letters. Sort it by lower case first and upper case second. Note ...
- PHP的基本语法
PHP的基本语法和c#的基本语法是差不多的,在这里只和大家聊一下PHP和C#语法不同的地方. 首先 PHP和c#的标记方式不一样,PHP他是一门脚本语言,JS也是脚本语言,只不过JS是运行在客户端的, ...
- curl命令使用(转)
转自:http://www.cnblogs.com/sunada2005/p/3829772.html curl命令可以用来构造http请求.参数有很多,常用的参数如下: 通用语法:curl [opt ...
- c# 隐藏 控制台应用程序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- 入门训练 A+B问题
http://lx.lanqiao.org/problemset.page?code=BEGIN-&userid=34549 入门训练 A+B问题 时间限制:1.0s 内存限制:2 ...
- [转] FastJson---高性能JSON开发包
原文地址: FastJson---高性能JSON开发包 Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发.1.遵循http://json.org标准,为 ...
- PHP isset()与empty()的使用区别详解
通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言.庞大的函数库支持着PHP语言功能的实现.下面我们为大家介绍有关PHP函数isset()与empty()的相关用法. PHP的is ...
- CSS_03_01_CSS类选择器
第01步:编写css样式:class_01.css @charset "utf-8"; /* CSS Document */ div.class01{ background-col ...
- oracle的例程
oracle只有在具备sysoper和sysdba权限下才能启动和关闭例程 关闭例程: --正常关闭(等待当前连接的所有用户与数据库断开) shutdown normal; --立即关闭(回退活动的事 ...