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容器实例
化、组装和管理的对象。
概念简单明了,我们提取处关键的信息:
-
bean是对象,一个或者多个不限定
-
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操作除了第一次生成之外其余的都是从缓存里获取的所以很快。

浙公网安备 33010602011771号