博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在IoC容器中装配Bean
阅读量:6242 次
发布时间:2019-06-22

本文共 1349 字,大约阅读时间需要 4 分钟。

一、

Spring启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成生成一份对应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系

二、Bean的配置信息包括4个方面

Bean的实现类

Bean的属性信息:如数据源

Bean的依赖关系

Bean的行为配置:如生命周期

三、配置方法有xml、注解、java、Groovy

四、Sping支持三种依赖注入方式属性注入与够造函数注入还有工厂(需要额外的类和代码)

属性注入:

通过SetXXX()方法,灵活性高

要求提供一个默认的构造函数

Spring先调用Bean的默认构造函数实例化Bean,然后通过反射的方式调用set

构造函数注入:

保证属性在Bean实例化后就可以使用

五、引用其他Bean

<ref>元素有3个属性

bean:引用同一容器或父容器中的Bean

local:只能访问同一配置文件中的Bean

parent:引用父容器中的Bean

六、内部Bean,类似内部类

七、null值

<property name = "brand"><value></value></property>

为brand属性注入一个null值,不会成功,Spring为将<value></value>解析为空字符串,要用<null/>

<property name = "brand"><null/></property>

八、Spring为List、Set、Map、Properties(map的特例,键与值必须是字符串)提供了专属的配置标签。

还可以通过util配置结合类型的Bean

九、简化配置,采用p命名空间

十、方法注入

lookup注入

Spring IoC容器拥有复写Bean方法的能力,为Bean动态粗昂见子类或实现类

方法替换

十一、Bean之间的关系

继承、依赖depends-on、引用

十二、Bean作用域

singleton(默认):容器中只存在一个Bean实例

prototype:每次从容器中嗲用Bean时,都返回一个新的实例

request:每次Http请求都会创建一个新的Bean

session:同一个Http Session共享一个Bean

globalSession:同一个全局Session共享一个Bean

十三、基于注解配置

1.Spring提供的4个注解

@Compoment总体

下面三个是对其的细化

@Repository:用于对DAO实现类进行标注

@Service:用于对Service实现类进行标注

@Controller:用于对Controller实现类进行标注

2.Spring提供了一个context命名空间,提供了通过扫描类包

3.自动装配Bean

使用@Autowired进行自动注入

如果容器中没有和标注变量类型匹配的Bean,那么Spring容器启动时将报NoSuchBeanDefinitionException异常,通过required = false进行标注

@Qualifier指定注入的Bean的名称

@Lazy延迟注入

 

转载于:https://www.cnblogs.com/jqqiang/p/7716285.html

你可能感兴趣的文章
vue-cli的坑,loader重复的锅 Invalid CSS after "...load the styles"
查看>>
手写Spring之IOC基于xml动态创建对象
查看>>
聊聊reactive streams的tranform操作
查看>>
箭头函数与this
查看>>
Angular4学习笔记之DOM属性绑定
查看>>
java构造list,合并重复的数组
查看>>
紫书第四章例4-4信息解码Message Decoding (处理二进制字符的一种典型例题)
查看>>
一些杂感杂想(三)打理业余时间的一点个人心得
查看>>
Apache Kylin安装部署
查看>>
JavaScript的async 的学习
查看>>
SpringCloud(第 021 篇)Zuul 的过滤器 ZuulFilter 的使用
查看>>
JavaScript笔记——闭包
查看>>
gRPC 初探
查看>>
SpringBoot非官方教程 | 第六篇:SpringBoot整合mybatis
查看>>
dataguard备库出现GAP修复
查看>>
OOD、DIP、IOC、DI、依赖注入容器(即 控制反转容器,IOC Container)
查看>>
Linux常用命令
查看>>
Grub4Dos 手动引导指令
查看>>
C# 有道API翻译 查询单词详细信息
查看>>
android 录像提示音问题
查看>>