Spring

什么是Spring beans?

Spring 官方文档对 bean 的解释是:

In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container

are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC

container.

翻译过来就是:在 Spring 中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例

化、组装和管理的对象。

概念简单明了,我们提取处关键的信息:

  1. bean是对象,一个或者多个不限定

  2. bean由Spring中一个叫IoC的东西管理

配置Bean有哪几种方式?

1.xml:

2.注解:@Component(@Controller 、@Service、@Repostory) 前提:需要配置扫描包 反射调用构造方法

3.javaConfig: @Bean 可以自己控制实例化过程

4.@Import 3种方式

解释Spring支持的几种bean的作用域

Spring框架支持以下五种bean的作用域:

singleton : bean在每个Spring ioc 容器中只有一个实例。

prototype:一个bean的定义可以有多个实例。

request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。

session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情

形下有效。

application:全局 Web 应用程序范围的范围标识符。

注意: 缺省的Spring bean 的作用域是Singleton。使用 prototype 作用域需要慎重的思考,因为频繁创建和销毁 bean

会带来很大的性能开销。

单例bean的优势

由于不会每次都新创建新对象所以有以下几个性能上的优势:

1.减少了新生成实例的消耗新生成实例消耗包括两方面,第一,spring会通过反射或者cglib来生成bean实例这都是耗性能的操作,其次给

对象分配内存也会涉及复杂算法。 提供服务器内存的利用率 ,减少服务器内存消耗

2.减少jvm垃圾回收由于不会给每个请求都新生成bean实例,所以自然回收的对象少了。

3.可以快速获取到bean因为单例的获取bean操作除了第一次生成之外其余的都是从缓存里获取的所以很快。

posted @ 2021-09-23 20:16  落笔生花  阅读(27)  评论(0)    收藏  举报