Spring Bean 对象

Spring Bean 对象的基本应用

1. Bean 对象的基本配置

在软件应用中由 Spring 管理得所有对象都称之为 Bean。 我们自己创建的类。假如需要由spring 管理,首先对这个类进行配置,常用配置方式有两种:一种基于 xml 进行配置,一种基于注解进行配置,本小节主要是基于 xml 对 bean 对象进行配置。

1.1 基于 xml 方式对象 Bean 对象进行配置时,首先需要在 Spring 核心配置文件中使用 bean 标签对 bean 类型进行声明。借助 id 或 name 属性指定得 bean 的一个标示,通过 class 属性指定 bean 的具体类型(必须写全类名)
例如:

1.2 Bean 对象的构建

Spring 中 Bean 对象的构建,提供了如下几种方法

1)直接通过构造方法
1
2)通过类的静态工厂方法创建对象(例如 Calendar(单例的,为接口) 的 getInstance 方法)
2
3)通过实例的实例方法构建对象(例如通过 Calendar 对象的 getTime 方法获取date对象)
3

说明:以上无论通关过哪种方法构建对象,底层都会用到反射

1.3 Bean 对象的作用域

在 Spring 容器中管理的 Bean 对象,可以在声明时通过 scope 属性或相关注解指定其作用域,最常用是 singleton,prototype. 其含义如下
1)singleton (这个作用域标识的对象具备全局唯一性):系统默认
2)prototype(这个作用域标识的对象每次获取都会创建新的对象)

#思考:
1) Spring 为什么要为 Bean 设置作用域?(更好的管理内存)
2) 假如没有使用 spring 如何保证一个类的实例具备全局唯一性?(单例模式)
3) 单例模式如何实现,有哪些实现方式,这些方式有什么不同?

1.4 Bean 对象的生命周期

在 Spring 框架应用中,所有的 Bean 对象都有生命周期,所谓 Bean 对象生命周期是之 Bean 对象的创建,初始化,服务,销毁的这个过程。
在 spring 配置文件中可以通过 Init-method,destroy-method 属性指定的 Bean 生命周期方法。
在 Spring 应用由 Spring 创建的对象是否由 spring 销毁,还取决于作用域的配置。例如
1) singleton 作用域的对象可以在容器关闭时销毁
2)prototype 作用域的对象可以由容器创建对象,初始化对象,但不能销毁对象。

1.5 Bean 对象的延迟加载

在 spring 应用中,容器初始化时,默认会构建所有由 spring 管理的 Bean 对象,但假如这些对象长时间不使用还占用着内存就会造成一定的资源浪费。为了解决这个问题, spring 中提供了一种延迟加载机制。通过这个机制来提高系统资源的有效使用。
Spring 中的延迟加载需要通过 bean 元素中 lazy-init 属性或 beans 中 default-lazy-init=”true” 属性进行设置,两者应用的不同点:
1) lazy-init :应用在 bean 标签中用于指定这个 bean 的加载策略。
2) default-lazy-init :应用在 beans 标签中用于指定所有 bean 的加载。

思考:
1)何为延迟加载?(何时需要何时加载)
2)对象延迟加载要解决什么问题?(内存使用问题)
3)对象延迟加载应用场景(大对象稀少用比较适合延迟加载,小对象频繁用)
4)连接池对象是否适合延迟加载(个人认为不适合,创建过程繁琐-加载速度慢)


重难点

1. Maven 的基本应用
2. Junit 框架的基本应用
3. Spring Bean 对象的基本应用

常见 FAQ

1. Spring 配置文件没有提示?
2. Spring Bean 对象的构建有哪些方式?
3. Spring Bean 对象哪些重要的作用域?其含义是什么?
......

作业

1. 总结知识点内容
2. 尝试实现一个单例模式类的设计
3. 预习 Spring 依赖注入
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值