spring中的bean是什么(为什么说它是spring应用程序的主干)
spring中的bean是什么(为什么说它是spring应用程序的主干)
2024-11-05 10:59:15  作者:沉沦的苦涩  网址:https://m.xinb2b.cn/life/fcf219340.html

在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean由Spring IoC容器实例化,组装和管理的对象,它只是应用程序中许多对象之一。Bean与bean之间的依赖关系反映在容器使用的配置元数据中。

一、bean的定义

Spring IoC容器管理一个或多个bean,这些bean是根据配置的参数创建的(例如,在XML中以<bean> <bean/>d的形式定义。这些bean定义主要包括以下元数据:

包限定的类名:通常是正在定义的bean的实际实现类。Bean行为配置元素,说明bean在容器中的行为方式(范围,生命周期回调等)。引用bean执行其工作所需的其他bean。这些引用也称为协作者或依赖项。要在新创建的对象中设置的其他配置设置 - 例如,池的大小限制或在管理连接池的Bean中使用的连接数。

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="configLocation" value="classpath:mybatis-config.xml" />

<property name="dataSource" ref="dataSource" />

<property name="mapperLocations" value="classpath*:mapper/*.xml"/>

</bean>


bean的定义

除了包含有关如何创建特定bean的信息的bean定义之外,这些ApplicationContext实现还允许注册在容器外部(由用户)创建的现有对象。这是通过方法访问ApplicationContext的BeanFactory来完成的getBeanFactory(),该方法返回BeanFactory DefaultListableBeanFactory实现。DefaultListableBeanFactory 通过registerSingleton(..)和 registerBeanDefinition(..)方法支持此注册。

每个bean都有一个或多个标识符。这些标识符在托管bean的容器中必须是唯一的。bean通常只有一个标识符。在基于XML的配置元数据中,可以使用id属性、name属性或两者来指定bean标识符。通常,这些名称是字母数字('myBean','someService'等),但它们也可以包含特殊字符。如果要为bean引入其他别名,还可以在name 属性中指定它们,用逗号、分号或空格分隔。

二、bean的实例化

可以将bean理解为用于创建一个或多个对象的配方。容器在被请求查看命名bean的配方时,可以使用该bean定义封装的配置元数据来创建(或获取)实际对象。如果使用基于XML的配置bean元数据的,创建class属性对应类的实例化的对象。实例化bean对象的方法有两种:

1)使用构造函数实例化

通过构造方法创建bean时,所有普通类都可以使用并与Spring兼容。spring IoC容器可以管理真正的JavaBeans,几乎可以管理任何类。spring通过默认构造函数,创建bean实例,类似于new一个对象。

2)使用静态工厂方法实例化

定义使用静态工厂方法创建的bean时,可以使用class 属性指定包含static方法的工厂类,并通过使用factory-method名称的属性指定工厂方法创建bean实例。如下,通过使用ClientService工厂的createInstance() 静态方法创建bean实例。

<bean id="clientService" class="examples.ClientService" factory-method="createInstance"/>public class ClientService { private static ClientService clientService = new ClientService(); private ClientService() {} public static ClientService createInstance() { return clientService; }}

三、Bean范围

可以通过配置创建的对象的范围,而不必在Java类中限制对象的范围。Spring Framework支持六个范围:1)singleton,将单个bean定义范围限定为每个Spring IoC容器的单个对象实例。2)prototype,将单个bean定义范围限定为任意数量的对象实例。3)request,将单个bean定义范围限定为单个HTTP请求的生命周期。也就是说,每个HTTP请求都有自己的bean实例,它是在单个bean定义的后面创建的。仅在具有Web感知功能的Spring环境中有效ApplicationContext。4)session,将单个bean定义范围限定为HTTP的生命周期Session。仅在具有Web感知功能的Spring环境中有效ApplicationContext。5)application,将单个bean定义范围限定为a的生命周期ServletContext。仅在具有Web感知功能的Spring环境中有效ApplicationContext。6)websocket,将单个bean定义范围限定为WebSocket的生命周期。


singleton


prototype

四、bean生命周期回调

与管理bean的生命周期的容器进行交互,可以实现Spring InitializingBean和DisposableBean接口,对bean的创建和销毁进行管理。Spring Framewor可以k使用BeanPostProcessor来实现任何回调接口并调用适当的方法。除了初始化和销毁​​回调之外,Spring管理的对象还可以实现Lifecycle接口,以便这些对象可以参与启动和关闭过程,这是由容器自身的生命周期驱动的。


bean初始化回调


bean的回收

  • 哪些食物中脂肪含量最多(哪些食物脂肪含量高)
  • 2024-11-06哪些食物脂肪含量高脂肪含量较高的食物主要包括有坚果类的食物,各种豆类,各种动物的肉类以及内脏等脂肪含量较低的食物包括蔬菜,水果以及谷薯类的食物具体我们生活中的这些食物主要包括哪些呢?今天我给大家来科普一下,非常有实用价。
  • 上海旅游攻略三日游最佳路线(上海旅游攻略三日游)
  • 2024-11-06上海旅游攻略三日游上海旅游攻略三日游1、上海三日游路线:第一天:上海东方明珠,上海城隍庙和豫园,上海博物馆,上海南京东路步行街,上海外滩第二天:上海迪士尼乐园,上海科技馆第三天:上海世博馆,上海新天地和党会址,上海田子。
  • 硝酸亚铁溶液的溶质(硫酸亚铁溶液沉淀物)
  • 2024-11-06硫酸亚铁溶液沉淀物硫酸亚铁用途广泛,有着极强的还原性与氧化性,在水处理与花肥应用方面,我们通常的投加方法是将硫酸亚铁配置成硫酸亚铁溶液进行投加,在硫酸亚铁溶液配置好后我们有时会发现溶液里面会有一些黄色或红棕色的絮状沉淀。
  • 火箭浣熊蹦蹦蹦(看火箭浣熊新片自导自演自唱)
  • 2024-11-06看火箭浣熊新片自导自演自唱撰文:NEMO新媒体编辑:黄嘉龄图片:网源《一个明星的诞生》这个故事从1937年首次登上银幕起,就具备了某种魔力,吸引后来者一次次的翻拍华纳翻拍的第四版《一个明星的诞生》中,主角是乡村乐明星杰克逊·缅。
  • lol双11打折的皮肤,双11皮肤活动来了
  • 2024-11-06lol双11打折的皮肤,双11皮肤活动来了亲爱的召唤师:11月11日英雄联盟将对20款限定皮肤进行限时销售,具体的限定皮肤内容请查看下面表格11.11限时销售限定皮肤列表:11月11日当天,每名召唤师可免费领取4张满减优惠券,优惠券仅限用于购。
  • 小米圈铁耳机pro是不是入门(想买耳机小米圈铁pro)
  • 2024-11-06想买耳机小米圈铁pro本文整理来自百度贴吧小米吧吧友娜可露露的祈愿花了两个小时去北京的小米之家看到很多好东西很多小学生打农药本来准备买99圈铁的还是买了149的听慢歌毕业不是你的乡村nightone音质令人惊艳特别nigh。
  • 冯巩演过哪些电影(冯巩从影30年拍天津三部曲)
  • 2024-11-06冯巩从影30年拍天津三部曲(《没事偷着乐》里最后的天津老城厢)从1987年在电影《业余警察》中饰演何大壮开始,冯巩涉足电影圈,开始塑造热心肠、胆小、小聪明、本事不大但是爱管闲事的小人物形象,至今已主演十六七部电影,四部电视剧身。
  • 米饭馒头面条哪种升糖高(馒头面条米饭)
  • 2024-11-06馒头面条米饭“听说馒头是升糖王,吃了血糖会噌噌往上涨”“啊?我听说米饭才是升糖王,不少人血糖不稳定就是因为米饭吃太多了”在小区楼下,秦大妈和赵大妈为了什么主食升糖比较快,争执不下有人觉得米饭升糖快,有人觉得馒头升。
  • 东北大学学生管理制度(西南大学:我的大学我做主)
  • 2024-11-06西南大学:我的大学我做主我的大学我做主大学生参与民主管理经过一个多月的认真筹备,西南大学政治与公共管理学院第二次代表大会暨第四次学生代表大会圆满落幕为保证此次大会的顺利召开,各年级学生代表及学生委员积极筹备,广泛参与,成效显。
  • 男人必看的十部欧美剧(近十年值得N刷的欧美剧)
  • 2024-11-06近十年值得N刷的欧美剧每一部都是超级爽剧,既有搞笑剧情,也有感人桥段;有浪漫,有诙谐,千万不要错过!《艾米丽在巴黎》第一季中,艾米丽来自芝加哥,是一位雄心勃勃的营销主管,在她所在的公司收购了一家法国奢侈品营销公司后,她出乎。
  • 养乌龟能活多长
  • 2024-11-06养乌龟能活多长不同种类的乌龟,其存活的时间长短也是不一样的比较常见的家养水龟一般寿命在20~50年之间,但由于生活环境的原因,多数寿命都在20年左右家养陆龟一般寿命在50~120年之间,而海龟寿命可达到100年以上。
  • 火烧赤壁的故事是什么(介绍火烧赤壁的故事)
  • 2024-11-06介绍火烧赤壁的故事曹操率领大军占领荆州,虽然威震四海,势如破竹,但是却十分骄傲,警惕性不高,认为孙刘联军不堪一击,一举就可以击破所以,曹操对孙刘联盟估计不足虽然孙刘联军水陆两军人马不足五万,力量又弱小,但是上下军民团结。