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主要提供 ...
随机推荐
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Eclipse下配置C++开发环境(转)
1. 首先确保你的电脑上已经安装了Java,如果没有,或者不确定,请到官网上下载并安装,网址如下(这一步我就不详述了): http://www.java.com/zh_CN/ 2. 到官网上下载并 ...
- DataBase: LeetCode
Combine Two Tables # Write your MySQL query statement below Select p.FirstName, p.LastName, a.City, ...
- 进击的java - tomcat的安装,配置都正确之后,还是报错
1.问题 配置Apatch Tomcat过程报错: The CATALINA_HOME environment variable is not defined correctly.This envir ...
- python在window下的Nginx部署
Python版本3.21 安装nginx下载windows上的nginx最新版本,http://www.nginx.org/en/download.html.解压后即可.运行nginx.exe后本地打 ...
- ant的那些闹挺事
今日发现了一个问题,用ant+hudson去运行脚本代码时,突然ant报错: 即使我在ant的build文件中指定了basedir=“C:/Users/145064/.hudson/jobs/haix ...
- 判断java中两个对象是否相等
java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false. 但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2 ...
- CSS_03_01_CSS组合选择器
CSS组合选择器 第01步:创建css:with.css @charset "utf-8"; /* 组合选择器,用","隔开 */ .a,.b,div span ...
- 安装好android的adt以后重启eclipse,但是没有创建AVD的图标
安装好android的adt以后重启eclipse,但是没有创建AVD的图标: 解决方法: 1. 先检查ADT是否已经安卓成功 2. Windows--- Customize Perspective ...
- opencv之深拷贝及浅拷贝,IplImage装换为Mat
一.(1) 浅拷贝: Mat B; B = image // 第一种方式 Mat C(image); // 第二种方式 这两种方式称为浅copy,是由于它们有不同的矩阵头,但是它们共享内存空间,即 ...