bean的详解

IOC操作bean管理
Spring创建对象,Spring注入属性

Bean管理操作两种方式
一.基于xml配置文件方式的实现

<bean id="user" class="<!--工程名-->"></bean>

1.在spring配置文件中,使用bean标签,标签里面添加对应的属性,就可以实现对象创建
2.常用属性:
id属性:唯一标识
class属性:类全路径
3.创建对象的时候,默认也是执行无参数构造方法完成对象的创建
4.基于xml的对象属性注入
set方法注入属性
在这里插入图片描述
有参数构造注入属性
在这里插入图片描述

在这里插入图片描述
xml注入其他类型的属性
在这里插入图片描述
外部注入
在这里插入图片描述

在这里插入图片描述
内部注入
在这里插入图片描述
注入数组类型属性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注入集合类型为引用对象的方法
在这里插入图片描述
Spring有两种类型的bean,一种是普通的bean,另一种是工厂bean
普通bean:在配置文件中定义bean类型就是返回类型
工厂bean:在配置文件定义bean类型可以和返回类型不一样
第一步:创建类,让这个类作为工厂bean,实现接口FactoryBean

在这里插入图片描述

第二步:实现接口里面的方法,在实现的方法中定义返回的bean类型
在这里插入图片描述
Bean的作用域
singleton:单例,指一个Bean容器中只存在一份
prototype:每次请求创建新的实例,destory方式不生效
request:每次http请求创建一个实例且仅在当前request内有效
session:同上,每次http请求创建,当前session内有效
global session: 基于portlet的web中有效(portlet定义了global session),如果是在web中,同session

bean生命周期

1.通过构造器创建bean实例
2.为bean的属性设置值和对其他bean引用
3.调用bean的初始化的方法(需要进行设置)
在这里插入图片描述

4.使用bean
5.让容器关闭的时候,调用bean 的销毁的方法(需要进行设置)
在这里插入图片描述
xml的自动装配
根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入
Bean的自动装配
NO:不做任何操作
byName:根据属性名自动装配,此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配
byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型bean,那么就会抛出异常;如果没有找到相匹配的bean,则什么事都不会发生
Constructor:与byType方式类似,不同之处在于它应用于构造器参数。如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常

二.基于注解方式实现
1.@Component
在这里插入图片描述

value值与class类名一致
2.@Service
3.@Controller
4.@Repository
5.@AutoWired:根据属性类型进行自动装配
第一步把service和dao对象创建,在service和dao类添加创建对象注解
第二步在service注入dao对象,在service类添加dao类型属性,在属性上面使用注解

6.@Qualifier 根据属性名称进行注入
7.@Resource可以根据类型注入,也可以根据名称注入
在这里插入图片描述

8.@Value注入普通类型属性
完全注解开发
1.创建配置类,添加注解@Configuration,代替xml配置文件,添加注解componentScan,扫描组件
在这里插入图片描述
2.加载配置类
在这里插入图片描述

开启组件扫描:
1.如果扫描多个包,多个包使用逗号隔开
2.扫描包上层目录
在这里插入图片描述

Aware
Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化之后,可以获取相应资源
通过Aware接口,可以对Spring相应资源进行操作
为对Spring进行简单的扩展提供了方便的入口

Resources
针对资源文件的统一接口
UrlResource:URL对应的资源,根据一个URL地址即可构建
ClassPathResource:获取类路径下的资源文件
FileSystemResource:获取文件系统里面的资源
ServletContextResource:ServletContext封装的资源,用于访问ServletContext环境下的资源
InputStreamResource:针对于输入流封装的资源
ByteArrayResource:针对于字节数组封装的资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值