当前位置: 首页 > news >正文

[spring]XML标签<bean>的二级标签

    <bean>之前讲到的几个属性,仅通过这几个属性想要配置完一个Bean的所有信息,还是不够而且不方便。因此<bean>还有下一级的二级标签来配置Bean的相关信息。

    上一篇文章

<property>

    这个二级标签我们上一篇的例子里面也有出现,作用是给该Bean对象的某个属性赋值。并且该属性需要提供对应setter方法,否则property标签会找不到该属性。

    该标签主要有三个标签:name、value、ref。

name用来指定需要设置值的setter方法,一个属性想要通过setter方法注入值,需要配置对应的setter方法。name、setter方法、属性 这三者之间的关系如下图:

    这张图可能还不懂,这里我们再创建一个setter方法,也是设置classroom类的属性student的:

    然后我们回到bean的配置文件来查看 <bean>标签的 属性name 它的可选值 :

    虽然name有两个可选值,而实际上Classroom类只有一个属性student。 

value和ref都是用来注入值的。value用来注入基础值,例如int、boolean、String等。ref则用来注入一个对象,该对象是同样在当前XML配置文件里面申明了的其他Bean对象。

    当然,同样要注意,当为单例模式的时候,一个IOC容器里面只能存在一个对象。此时多个其他Bean对象注入这个单例的Bean对象,那么其他Bean对象获取到的都是同一个对象(在内存当中),此时要注意多线程的问题。

<constructor-arg>

    该标签用于指定创建Bean对象的参数,然后调用对应的有参构造方法。它主要有这几个属性:

name:用来指定参数名字,该参数名与构造函数里面的参数名一致

value/ref:用来输入值的数据,两者区别与property中的 value/ref 一致

type:当使用value时,可以使用该属性声明你所输入的值的类型

    该属性是否使用主要看版本

    不管我们输入的是什么也好,value值我们给的值原本都是是String类型,然后会自动转换我们所需要的数据类型。但在高版本的spring中,撤掉了自动类型转换,需要我们使用type声明我们输入的数据属于什么类型。

index:设置该参数位于传递的参数列表中的第几个。该属性和name只需要使用其中之一即可,都是用来设置传递的参数所构成的参数列表的。

    当有多个参数的时候,便在<bean>下面创建多个<constructor-arg>传递多个参数值即可。注意,你所传递的参数所构成的参数列表必须与某个构造函数的参数列表一致


http://www.mrgr.cn/news/80636.html

相关文章:

  • 使用Python脚本进行编写批量根据源IP进行查询的语句用于态势感知攻击行为的搜索
  • 关于SQL注入的面试题及经验分享
  • 加速科技精彩亮相ICCAD 2024
  • Java 系统稳定性进阶之路:策略、实践与优化
  • Linux实操篇-远程登录/Vim/开机重启
  • Vue简介:构建现代Web应用的前端框架
  • WPF ControlTemplate 控件模板
  • 【递归,搜索与回溯算法】穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝算法入门专题详解
  • “年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元
  • AMS1117芯片驱动电路·降压芯片的驱动电路详解
  • linux - 软硬链接
  • Linux -- 线程控制相关的函数
  • C语言栈和队列
  • 麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储
  • 多模态抽取图片信息的 Prompt
  • 挑战一个月基本掌握C++(第五天)了解运算符,循环,判断
  • 【Rust自学】3.5. 控制流:if else
  • 【C++复习第5小节】类和对象
  • 深入解析二叉树算法
  • SpringBoot开发——整合JSONPath解析JSON信息
  • tcp_retransmit_skb函数
  • C语言指针与数组深入剖析及优化示例 指针解读 数组与指针的关系
  • vue3前端组件库的搭建与发布(一)
  • 什么是动态网站 ,有哪些特点
  • abc 384 D(子数组->前缀和) +E(bfs 扩展的时候 按照数值去扩展)
  • 程序的基本结构