@Bean有哪些属性

直接看原文

原文链接:Spring中bean标签的作用和属性的详解-CSDN博客

-------------------------------------------------------------------------------------------------------------------------------- 

  • Bean的配置一般都在XML文件进行配置
  • Bean相关包为:org.springframework.beans和org.springframework.context
  • spring的Bean管理的实现是依靠大量的反射来实现的。
bean标签常用属性
  • id:是bean的唯一标识,IoC容器中bean的id标签不能重复,否则报错。用于指定Bean的名称,在Bean被依赖时使用,在获取Bean时使用等
  • name:用于指定Bean的别名,bean标签的name属性也是不能重复,且id和name属性也不能重复,name标签应该等同于id属性。
  • class :  用来定义类的全限定名(包名+类名)。只有子类Bean不用定义该属性。
  • singleton(默认为“true”):定义Bean是否是Singleton(单例)。如果设为“true”, 表示为单例模式、则在BeanFactory作用范围内,只维护此Bean的一个实例。如果设为“flase”,表示原型模式 、Bean将是Prototype(原型)状态,BeanFactory将为每次Bean请求创建一个新的Bean实例。
  • depends-on:用于指定当前Bean的依赖Bean,强制指定的Bean在当前Bean初始化之前先完成初始化。
  • init-method:用于指定当前Bean的初始化方法,在Bean实例创建好后,首先会调用其指定名称的方法。
  • destory-method:用于指定当前Bean的销毁方法,在Bean即将被销毁之前会自动调用该属性指定的方法。
  • lazy-init:用于指定当前Bean的初始化时间,若值为true表示在初次调用时才会自动创建实例并初始化,false表示在IoC容器创建的时候就会完成创建和初始化。
  • autowire:用于指定当前Bean的依赖关系的自动注入方式 , autowire(自动装配,默认为“default”)、

           autowire 其有五个值:

                 no : 默认值,不进行自动装配

                 byName : 根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配

                 byType值:表示通过class指定的类型来自动装配、如果存在多个该类型bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生,也可以通过设置dependency-check="objects" 让Spring抛出异常。

               constructor值:表示使用构造函数的参数进行自动装配(参数的类型匹配)。如果容器中没有找到与构造器参数类型一致的bean, 那么抛出异常

               autodetect值:表示自动进行选择匹配方式,首先进行constructor自动装配,若不存在构造方法则使用byType方式进行自动装配;如果发现默认的构造器,那么将使用byType方式,否则采用 constructor。

                default:由上级标签的default-autowire属性确定。  

  • scope:Bean的作用范围 

           scope值  : 

                singleton值: 默认值是单例的。只有一个实例对象,就断创建多个对象,这些对象也是同一个对象,地址相同。此外,singleton类型的bean定义,从容器启动,到他第一次被请求而实例化开始,只要容器不销毁或退出,该类型的bean的单一实例就会一直存活。表示整个IOC容器共享一个Bean,也就是说每次说每次通过getBean获取的bean都是同一个。

                prototype值: 多例的 。每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)时都会创建一个新的bean实例。

                request值:web项目中spring创建一个bean对象,将对象存到request域中。Spring容器,XmlWebApplicationContext 会为每个HTTP请求创建一个全新的RequestPrecessor对象,当请求结束后,该对象的生命周期即告结束,如同Java web中request的生命周期。当同时有100个HTTP请求进来的时候,容器会分别针对这10个请求创建10个全新的RequestPrecessor实例,且他们相互之间互不干扰。

               session值:每次会话请求对应一个bean实例。比如存放登录信息。

               globalSession:web项目中,应用在prolet环境,如果没有prolet环境那么globalSession相当于session。

  • dependency-check属性:用于指定Bean的依赖检查模式,检查依赖关系是否完整,与自动装配合用。

            dependency-check属性 其有四个值:

                     simple值:表示针对基本类型、字符串、集合进行依赖检查

                     object值:表示对引用对象进行依赖检查 

                     all值:表示对基本类型、字符串、集合、引用对象全部进行依赖检查

                     none值:表示不进行任何依赖检查,默认情况。

  • factory-method : 工厂方法属性,通过该属性,我们可以调用一个指定的静态工厂方法,创建bean实例。
  • factory-bean : 就是生成bean的工厂对象,factory-bean属性和factory-method属性一起使用,首先要创建生成bean的工厂类和方法。

 property标签

  • name属性:用于指定属性的名称,与类中的set方法后方的名称一致
  • value属性:用于指定该属性的值,用于指定的值是基本类型、字符串类型
  • ref属性:用于指定该属性的值,用于指定的值是引用对象类型(即其他的Bean),ref后面的值为另一个Bean的id
  • value标签:用于指定属性的值,类型为基本类型、字符串类型,值为标签内的文本内容,可以使用null值将属性的值设置为null
  • ref标签:用于指定属性的值,类型为引用对象类型,值为其属性的值,

             其属性有以下三种:

                  local属性:用于指定依赖本地Bean实例,即同一XML文件中定义的Bean

                  bean属性:用于指定依赖的Bean实例,可以是不同XML文件中的Bean

                  parent属性:用于指定依赖的Bean实例,可以是当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext中的Bean

集合标签

list标签:用于声明该依赖对象为一个list集合,其下用value和ref标签来指定list中的各值(基本、字符串、对象等)
set标签:用于声明该依赖对象为一个set集合,其用法与list标签相同。
map标签:用于声明该依赖对象为一个map集合,其下用entry标签来声明一个键值对
entry标签:用于声明map集合下的一个键值对,其下用key属性指明键,value/ref标签指明值
key属性:用于指明键值对中的键,它一般为字符串

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达《机器学习》6-4->6-7:代价函数、简化代价函数与梯度下降、高级优化、多元分类:一对多

一、代价函数 逻辑回归的代价函数是用来度量模型预测与实际结果之间的差异的。与线性回归使用均方误差不同,逻辑回归使用的代价函数在数学上更为复杂。为了理解逻辑回归的代价函数,首先要明白逻辑回归的假设函数: ℎ𝜃(&#x1…

激光雷达和人工智能

几十年来,激光雷达一直是许多行业中非常有用的工具,但直到最近,随着人工智能(AI)解决方案的引入,我们才开始认识到它的真正潜力。激光雷达,又称光探测和测距,是一种遥感技术。它利用…

React构建组件的方式有哪些?区别?

一、是什么 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式 在React中,一个类、一个函数都可以视为一个组件 在之前文章中,我们了解到组件所存在的优势: 降低整个系统的耦合度&am…

nginx下载安装和日志切割

目录 一、nginx安装配置 1.nginx版本 2.nginx安装配置 3.查看安装后的nginx 4.配置PATH变量 二、日志切割 1.给当前日志文件重命名 2.等待 3.写bash脚本 4.查看日志结果 5.加入crontab定时任务 结语 一、nginx安装配置 1.nginx版本 nginx如今分为商业版&#xff0…

imagettftext(): Could not find/open font 解决办法

问题:Captcha验证码不能正常显示,是因为使用GD库imagettftext()函数时,报“Warning: imagettftext(): Could not find/open font in ”警告 。 网上的解决方法: 将font路径的相对路径 转成 绝对路径即可 $fontfile "./fonts/*.ttf&q…

MaHDE

FHM means ‘fitness hierarchical mutation’,DGS means ‘directed global search’,ELS means ‘elite local search’ 辅助信息 作者未提供代码

使用数据分析,识别设备异常

设备健康监测系统在工业领域中扮演着至关重要的角色,它能够帮助企业及时发现设备异常,预防故障,提高设备使用寿命和生产效率。而异常诊断技术则是设备健康监测系统中的核心部分,能够实现对设备异常情况的准确判断。根据设备状态数…

高校为什么需要企业数据库?

随着信息化数字化的发展,企业数据库已经成为高校不可或缺的一部分。企业数据库一般整合了多维度企业数据信息。比如,艾思依托丰富的数据沉淀和领先的模型算法,打造“1N”产业大数据平台,包含“1个企业数据中心”一一涵盖全国2.4亿…

【uniapp】解决在H5谷歌浏览器下 u-input 标签 设置只读后,click事件不生效

【问题描述】 谷歌浏览器更新后,h5模式下原本的input外层view中的click事件不触发了?? 但是更换浏览器后就可以,打包app也是正常可以触发的,本来是没打算兼容h5,既然遇到了就记录一下~ 【解决办法】 使u–input里写上readonly&…

【python海洋专题四十】海洋指数画法--单色填充图

【python海洋专题四十】海洋指数画法–单色填充图 【python海洋专题四十】海洋指数画法–单色填充图 数据:AMO_index 图像展示: 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【p…

[PHP]得推跑腿O2O系统 v3.41

得推跑腿系统是一个以phpMySQL进行开发的主要针对本地跑腿服务的O2O系统,支持wap\\小程序\\App。 主要功能模块: 用户端: 1.跑腿任务发布 2.跑腿任务管理追踪 3.在线支付 4.常用地址管理 跑腿端: 1.跑腿任务抢单 2.跑腿员认证 3.…

2023年Q3乳品行业数据分析(乳品市场未来发展趋势)

随着人们生活水平的不断提高以及对健康生活的追求不断增强,牛奶作为优质蛋白和钙的补充品,市场需求逐年增加。 今年Q3,牛奶乳品市场仍呈增长趋势。根据鲸参谋电商数据分析平台的相关数据显示,2023年7月-9月,牛奶乳品市…

【星海随笔】git的使用

1.在终端,检查git是否安装 git --version 2.没有安装的话去,官网,下载git 3.一直点下一步即可 4.安装后在终端检查git是否安装好 5.设置用户名和邮件地址(最好和GitHub的用户名/邮箱保持一致) git config --global user.name “自己的用户名”…

数据结构: 哈希桶

目录 1.概念 2.模拟实现 2.1框架 2.2哈希桶结构 2.3相关功能 Modify --Insert --Erase --Find 2.4非整型数据入哈希桶 1.仿函数 2.BKDR哈希 1.概念 具有相同地址的key值归于同一集合中,这个集合称为一个桶,各个桶的元素通过单链表链接 2.模拟实现 2.1框架 a.写出…

2.3.3 交换机的RSTP技术

实验2.3.3 交换机的RSTP技术 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.交换机的基本配置。2.开启交换机的STP。3.配置SW3A和SW3B上STP的优先级。将SW3A配置为根交换机,SW3B配置为备用根交换机。4.配置SW2A和SW2B的边缘接口 六、任务验收七、…

使用基于swagger的knife4j自动生成接口文档

添加swagger依赖springfox&#xff0c;添加knife4j依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId> </dependency> <dependency><groupId>com.github.xiaoymin</group…

C语言:union类型

C语言的union类型是一种用于存储不同数据类型的数据结构&#xff0c;但与struct类型不同&#xff0c;union只能同时存储其中的一个成员的值&#xff0c;而不是所有成员的值。这可以节省内存&#xff0c;因为union的大小等于其最大成员的大小。 union UnionName {data_type mem…

postman中文乱码

在header中添加这两个&#xff1a; Content-Type application/json;charsetUTF-8 Accept application/json;charsetUTF-8

Mac下flutter工程配置Gitlab cicd打包(暂时仅限android侧)

写的太粗糙&#xff0c;可能不太适合完全不懂的同学&#xff0c;但是实在没时间&#xff0c;而且也不太会写&#xff0c;权当做一个记录吧&#xff0c;对了还没有搞docker这些&#xff0c;还在持续学习中 1.GitLab Runner&#xff08;打包机&#xff09; 注意:需要有对应的权…

docker容器安装gdb

1)将设备连到大网&#xff08;大网转接小网&#xff09; 交换机上&#xff1a; 1.查看现在的网关&#xff1a;ip route show 已有网关现象&#xff1a; default via 192.168.2.2 dev eth0 //默认网关 192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.33 240.1…