Spring———bean的创建方式,注入方式,复杂类型注入 概括
Spring相关概念和类
1、IOC
inverse of control 控制反转 反转了创建对象的方式
以前:new 对象,管理和维护开发者来完成
Spring:Spring创建和管理,维护对象,开发者只需要使用该对象。
2、DI(Dependecy Injection): 依赖注入
DI是为IOC做支持的
IOC创建的对象的内容是null,所以我们要注入内容
3、BeanFactory ApplicationContext,classPathXMLApplicationContext
最原始的接口
是BeanFactory的实现类
是ApplicationContext的实现类,用于加载spring的配置文件
二、Spring的bean的创建方式(3种)
1 、无参构造方法 <bean name=" " class="包名+类名">
2 、静态工厂方式 <bean name=" " class="包名+类名(工厂的类名)" factory-method="工厂中的静态方法">
3、实例工厂方式 首先先创建工厂对象
<bean name="factory" class="包名+类名(工厂类的名字)">
<bean name=" " factory-bean="factory " factory-method="工厂中的创建对象的方法">
三、Spring属性注入方式(DI)
1、构造方法注入
<constructor-arg name="" value=""></constructor-arg>(基本类型)
<constructor-arg name="" ref=""></constructor-arg> (引用类型)
指定参数位置 index 从0开始
2、set方法注入
<property name="" value=""></property>(基本类型)
<property name="" ref=""></property>(引用类型)
3、p名称空间注入
1、引入名称空间
2、使用:
3、基本类型: p:属性名="值" 引用类型: p:属性名-ref="值"
4、spel注入
#{表达式} 字符串的值要用单引号括起来
也可以用对象点出来 #{user1.user.id} 都是 value
四、Spring复杂类型注入(4种)(DI)
array:<array name="">
<value></value>
<value></value>
</array>
list:<list name="">
<value></value>
<ref bean=""></ref>
</list>
map: <map name="">
<entry key="" value=""></entry>
<entry key="" value-ref=""></entry>
</map>
properties:<property name="">
<props>
<prop key="">value</prop>
<prop key="">value</prop>
</props>
</property>
Spring———bean的创建方式,注入方式,复杂类型注入 概括的更多相关文章
- spring Bean的三种配置方式
Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java Config 添加spring的maven repository <dependency> ...
- Spring 源码(10)Spring Bean 的创建过程(1)
Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建 ...
- Spring 源码(11)Spring Bean 的创建过程(2)
Spring Bean 的创建过程介绍了FactoryBean 的创建方式,那么接下来介绍不是FactoryBean的创建方式,在创建过程中,又会分为单例的Bean的创建,原型类型的Bean的创建等. ...
- Spring 源码(12)Spring Bean 的创建过程(3)
继续上一篇Spring Bean的创建过程的解读,上一篇介绍了Spring在创建过程中doGetBean方法,在执行过程中会调用getSingleton方法并且设置一个lambda表达式,这个lamb ...
- Spring 源码(13)Spring Bean 的创建过程(4)
Spring Bean的创建过程非常的复杂,上一篇重点介绍了Spring在创建Bean的过程中,使用InstantiationBeanPostProcessor进行提前创建Bean,我们可以通过CGL ...
- spring Bean装配的几种方式简单介绍
Spring容器负责创建应用程序中的bean同时通过ID来协调这些对象之间的关系.作为开发人员,我们需要告诉Spring要创建哪些bean并且如何将其装配到一起. spring中bean装配有两种方式 ...
- Spring Bean自动装配有哪些方式?
Spring 容器能够自动装配 Bean .也就是说,可以通过检查 BeanFactory 的内容让 Spring 自动解析 Bean 的协作者. 自动装配的不同模式: no - 这是默认设置,表示没 ...
- Spring Bean学习创建及使用<二>
转自:http://blessht.iteye.com/blog/1162131 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的 ...
- Spring Bean学习创建及使用<一>
转自:http://glzaction.iteye.com/blog/1299441 Spring中依赖注入有三种注入方式: 一.构造器注入: 二.设值注入(setter方式注入): 三.Feild方 ...
随机推荐
- websocket flutter
https://stackoverflow.com/questions/51077233/how-can-i-use-socket-in-flutter-app import 'dart:io'; i ...
- Prometheus监控学习笔记之Prometheus 2.0 告警规则介绍
0x00 变化 Prometheus 2.0 已经发布一段时间了,从今天开始我将分几篇文章为大家介绍其中的一些变化. 此篇文章主要介绍 2.0 的告警规则声明的新写法. 从 1.x 到 2.0 规则声 ...
- PHP共享内存yac操作类
http://www.laruence.com/2013/03/18/2846.html 鸟哥介绍 https://www.cnblogs.com/willamwang/p/8918377.htm ...
- 实现点击页面其他地方,隐藏div(原生和VUE)
1原生方法 // html <div id="box" style="width:110px;height:110px;background-color:red&q ...
- 比原链(Bytom)先知节点 Ubuntu接入文档
系统要求 我们建议选择知名的VPS服务商,运行比原链节点对算力没有要求,但是请配置尽可能大的磁盘空间. 节点服务器最小配置: 操作系统: Windows/Linux/Docker CPU: 2核 内存 ...
- ssm框架如果想要跨域请求,cors跨域
<!-- 跨域 --> <mvc:cors> <mvc:mapping path="/**"/> </mvc:cors> 在spri ...
- Error: listen EADDRINUSE :::3000
解释:端口已被占用 解决方法: 修改本服务要用的端口.如 3001 停止 3000 端口. lsof -i:3000 # 查看 3000 端口被占用情况 kill -9 xxx PID 为上调命令查看 ...
- Java程序设计的第二次作业
本次作业包含两个部分:一是以下4个题目的程序源码和运行结果截图:二是本次作业的小结(谈谈你在做作业的过程中遇到了哪些问题,如何解决,有哪些收获). 1.编写“人”类及其测试类.1.1 “人”类: 类 ...
- AutoField的话就报错:'AutoField' object has no attribute 'rel'
def data_inspect(self, data, extra=None): if isinstance(data, (QuerySet, Page, list)): convert_data ...
- 升级node后还是原来版本问题
解决升级node后,已经安装了最新的版本,但是默认的node版本不是最新版本还是当前版本. 最近遇到个错误:The engine node is incompatible with this modu ...