在Spring中自动装配Bean的属性
Spring的最基本的能力就是DI,即依赖注入,或控制反转,它可以为Bean注入其依赖的其他Bean。
一个Bean依赖其他Bean一般是通过在Bean中定义其他Bean的成员变量的方式来实现的,那么,Spring的DI也就表现为给Bean的属性自动注入值。
这一般分为以下其中情况。
1,自动注入基本类型。
自动注入基本类型,即当一个Bean有一些基本类型的属性时,例如String
,double
,int
等类型的属性时,我们可以在xml中自动为这些属性注入值。虽然这也成为自动注入的一种,但严格来讲,这种注入并不算是真正意义上的依赖注入,充其量算是一种初始化方式或赋值方式。就一个具有真实意义的可运行系统而言,依赖,主要指的是不同组件,不同类之间相互依赖,协作完成一项工作。从这个角度来讲,DI更应该指的是下面的第2种情况。
自动注入基本类型,通过property
标签的value属性来完成。
2,注入其他Bean类型的属性。
即如果一个Bean有另外一个Bean或者说类类型的成员变量,那么我们可以通过DI对该属性进行自动注入。这种情况应该算是真正意义上的自动注入。
注入其他Bean类型的属性,通过property标签的ref属性来完成。
3,注入List类型的属性。
如果一个Bean有一个List类型的属性,那么我们可以在xml中完成对它的注入。至于该属性是基本类型的list还是其他Bean的list,这里都可以支持。
4,注入map类型的属性。
如果一个Bean有一个Map类型的属性,那么我们可以在xml中完成对它的自动注入。
This is the end。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
关于SpringBoot获取IOC容器中注入的Bean(推荐)
一: 注入一个TestUtils类 package com.shop.sell.Utils; import com.shop.sell.dto.CartDTO; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class TestUtils { @Bean(name="test
-
浅谈spring容器中bean的初始化
当我们在spring容器中添加一个bean时,如果没有指明它的scope属性,则默认是singleton,也就是单例的. 例如先声明一个bean: public class People { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String get
-
详解Spring简单容器中的Bean基本加载过程
本篇将对定义在 XMl 文件中的 bean,从静态的的定义到变成可以使用的对象的过程,即 bean 的加载和获取的过程进行一个整体的了解,不去深究,点到为止,只求对 Spring IOC 的实现过程有一个整体的感知,具体实现细节留到后面用针对性的篇章进行讲解. 首先我们来引入一个 Spring 入门使用示例,假设我们现在定义了一个类 org.zhenchao.framework.MyBean ,我们希望利用 Spring 来管理类对象,这里我们利用 Spring 经典的 XMl 配置文件形式进行
-
关于Spring中Bean的创建进行更多方面的控制
我们知道Spring Boot 中一个@Controller修饰的Bean是在什么时间被创建的,那么这个Bean创建时间能不能由我们管控?答案是肯定的 关于Spring中Bean的创建,除了配置装配属性外,我们还可以进行更多方面的控制. 1,首先,我们可以控制Bean是单例还是可以生成多个对象的. 在Spring中,Bean默认是单例的,如果想每次请求都生成一个新的Bean对象,可以在定义Bean时,在<bean>标签中配置scope属性为prototype,那么,就会允许该Bean可以被多次
-
spring在IoC容器中装配Bean详解
1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean实例放入bean缓存池: 应用程序使用bean. 1.2.基于xml的配置 (1)xml文件概述 xmlns------默认命名空间 xmlns:xsi-------标准命名空间,用于指定自定义命名空间的schema文件 xmlns:xxx="aaaaa"-------自定义命名空间,xx
-
Spring的Bean容器介绍
最近正在重读<Spring In Action>一书,把里面的知识点再回顾一遍. BeanFactory是一个顶层接口,是最基本的Bean容器.Spring使用BeanFactory来生成,配置和管理Bean. ApplicationContext是BeanFactory的子类,它比BeanFactory提供了更加丰富的功能. 平时常用的Bean容器还有3个,它们都是ApplicationContext的子类,如图所示.ClassPathXmlApplicationContext主要用在在类路
-
在AOP中Spring生成代理类的两种方式
Java 动态代理.具体有如下四步骤: 通过实现 InvocationHandler 接口创建自己的调用处理器: 通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类: 通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型: 通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入. 在AOP中,Spring通过生成代理类,来完成切面的织入. Spring生成代理类有2种方式. 如果目标对象实现的是一个接口,Sprin
-
JSP 获取spring容器中bean的两种方法总结
JSP 获取spring容器中bean的方法总结 方案1(Web中使用): ApplicationContext ct = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext()); logService = (ISysLogService) ct.getBean("sysLogServiceImpl"); 说明:getRequiredWeb
-
Spring中自动装配的4种方式
Spring容器可以在不使用<constructor-arg>和<property>元素的情况下自动装配相互协作的bean之间的关系,助于减少编写一个大的基于Spring的应用程序的XML配置的数量使用<bean>元素的autowire属性为一个bean定义指定自动装配模式. 在Spring中,我们有4种方式可以装配Bean的属性. 1,byName 通过byName方式自动装配属性时,是在定义Bean的时候,在property标签中设置autowire属性为byNam
-
Spring中数据访问对象Data Access Object的介绍
在Spring中,DAO是Data Access Object的简称,即,数据访问对象. 它的名称虽然叫对象,但其实DAO是接口.这个名称很好的描述了DAO在程序中的角色.DAO的作用在于提供一种手段,来读取和写入数据库,他们应该通过接口的方式来提供这种功能,让程序的其他部分可以访问他们,而不必与特定的读取和写入数据库的实现方式进行绑定. 在程序中,与DAO相关的类的关系一般如下图所示. 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们
随机推荐
- angularJS深拷贝详解
- AngularJS指令与控制器之间的交互功能示例
- javascript setAttribute, getAttribute 在不同浏览器上的不同表现
- asp.net 分页潜谈
- Shell脚本一次读取文件中一行的2种写法
- MySQL内存表的特性与使用介绍
- jQuery实现简单漂亮的Nav导航菜单效果
- AngularJS实现select的ng-options功能示例
- python过滤字符串中不属于指定集合中字符的类实例
- javascript实现仿腾讯游戏选择
- PHP简单遍历对象示例
- Intellij IDEA + Android SDK + Genymotion Emulator打造最佳Android开发环境
- JSP 开发之servlet中调用注入spring管理的dao
- destoon之一键登录设置
- 通过Javascript创建一个选择文件的对话框代码
- iOS开发仿电商类APP首页实例
- 浅谈php中include文件变量作用域
- GMail 终于开放注册了
- 简单实现Android放大镜效果
- 微信跳一跳辅助Java代码实现