20200229——Spring复习 框架概述以及spring中基于xml的配置 一

spring是分层的javaSE/EE应用,full-stack轻量级开源框架,以IOC控制反转和AOP面向切面编程

spring的优势

方便解耦,简化开发
通过IOC容器,可以将对象的关系交给Spring进行控制管理,避免硬编码所造成的过度程序耦合,用户也不必再为单例模式,属性文件解析这些很底层的代码进行编写
我觉得就是依赖注入和依赖查找
削减耦合,并不是完全消除

AOP编程支持

程序间的耦合
比如jdbc程序,如果我们不引入mysql的驱动包,程序就运行不了

耦合:程序间的依赖关系
包括两种,类之间的依赖关系 方法间的依赖关系

解耦:降低程序间的依赖关系

实际开发中
编译器不依赖,运行时才依赖

解耦的思路
第一步,使用反射来创建对象,而避免使用关键字new
第二步,通过配置文件来获取创建的对象全限定类名

上升到java web
在没有使用spring的时候,表现层调用业务层,需要创建业务层对象的实例
但是这样就具有了耦合行

javabean
bean 在计算机语言中,有可重用的组件
spring就相当于相当于一个bean工厂
创建service和dao对象
第一个 需要配置文件来配置我们service和dao 配置的内容,全限定类名与唯一标识 key,value
第二个 通过读取配置文件中配置内容,创建反射对象

自定义Spring
创建一个BeanFactory
有一个属性
在这里插入图片描述
在有个静态块
在这里插入图片描述
在resource文件夹有bean.properties

在这里插入图片描述
getBean方法获取bean

就可以在表现层通过BeanFactory得到bean对象了

单例多例
我们创建一个map的容器对象,把对象创建好的实例放在容器中,这样就可以实现单例模式,每次都进容器去查找对象
然后不用在getBean方法中每次都创建实例了

** 导入Spring**
创建bean.xml
在beans标签内部,每一个管理的bean用标签注入
id是自己起的名字 class为全限定类名
在这里插入图片描述

我们要获取相当于我们自定义的内个map,也就是ApplicationContext这个类,在找到他的实体类对象
在这里插入图片描述

在这里插入图片描述
根据id获取两种方法

ApplicationContext三个常用实现类
在这里插入图片描述

ApplicationContext引发问题
ApplicationContext构建核心容器的时候,创建对象采用的策略是用立即加载的方式,读取配置文件马上创建配置文件的内容
而BeanFactorty是采用延迟加载方式,什么根据id获取到了,才创建对象

Spring创建bean的三种方式

第一种
在这里插入图片描述
必须有默认构造函数

第二种
在这里插入图片描述
利用工厂创建

第三种
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200229152826234.png=利用静态方法

bean的作用范围
bean对象默认是单例的
但是bean标签有一个scope属性,作用是用于指定bean的作用范围

singleton 单例
prototype 多例
request 作用于web应用的请求范围
session 组用于web应用的会话范围
global-session 作用于集群环境的会话范围

bean生命周期
单例对象 与容器生命周期相同

多例对象 使用对象的时候Spring会帮我们创建, 对象只要在使用就一直存在,长时间不用会被java回收器回收

依赖注入
在这里插入图片描述

简单来说,就当前类中的属性,基本数据类型和bean类型 集合类型

第一种
构造函数提供

在这里插入图片描述
比如在这个程序中我们birthday是日期类型,那么我们可以
在这里插入图片描述
把上面的value属性改为ref ref =“now”
在这里插入图片描述

小总结,value是提供基本数据类型和String
ref 是指的是其他的bean

这种构造函数的弊端
在这里插入图片描述

第二种是今后使用的依赖注入
有set方法可以注入
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值