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

Bean 标签有哪些属性

口语化回答

好的,面试官。bean 是最常使用的标签,如果是使用 xml 形式。最常见的基本属性就是 id,name,class。分别标识唯一的 beanbean 的别名实际要注入的类。也可以通过一些属性实现,bean 开始时候的操作,比如init-method,配置的方法,可以在 bean 初始化的时候,进行执行。bean 还有常见的构造函数注入标签,注入 bean 中的属性。

题目解析

应届生常问,有工作经验的基本不问,目的其实就是为了,考察一下你到底有没有实际使用过 spring 的 bean 的配置。

面试得分点

id,name,class,一些初始化属性

题目详细答案

常见属性

id:Bean的唯一标识符。

<bean id="myBean" class="com.example.MyBean"/>

name:Bean的别名,可以为Bean定义一个或多个别名。

<bean id="myBean" name="alias1,alias2" class="com.example.MyBean"/>

class:Bean的全限定类名。

<bean id="myBean" class="com.example.MyBean"/>

scope:Bean的作用域,常见值包括singleton(默认)、prototype、request、session、globalSession、application。

<bean id="myBean" class="com.example.MyBean" scope="prototype"/>

init-method:Bean初始化时调用的方法。

<bean id="myBean" class="com.example.MyBean" init-method="init"/>

destroy-method:Bean销毁时调用的方法。

<bean id="myBean" class="com.example.MyBean" destroy-method="cleanup"/>

factory-method:用于创建Bean实例的静态工厂方法。

public class CarFactory {// 静态工厂方法public static Car createCar() {return new ElectricCar(); // 返回具体实现}
}
<bean id="myCar" class="com.example.CarFactory" factory-method="createCar"/>

factory-bean:用于创建Bean实例的工厂Bean的名称。

public class CarFactory {private String brand;public void setBrand(String brand) {this.brand = brand;}// 实例方法public Car produceCar() {if("Tesla".equals(brand)) {return new ElectricCar();} else {return new GasolineCar();}}
}
<!-- 配置工厂 -->
<bean id="teslaFactory" class="com.example.CarFactory"><property name="brand" value="Tesla"/>
</bean><!-- 使用工厂生产汽车 -->
<bean id="model3" factory-bean="teslaFactory" factory-method="produceCar"/>

依赖注入相关属性

constructor-arg:用于构造函数注入。

<bean id="myBean" class="com.example.MyBean"><constructor-arg value="someValue"/><constructor-arg ref="anotherBean"/>
</bean>

property:用于Setter方法注入。

<bean id="myBean" class="com.example.MyBean"><property name="propertyName" value="someValue"/><property name="anotherProperty" ref="anotherBean"/>
</bean>

其他常用属性

autowire:自动装配模式,常见值包括no(默认)、byName、byType、constructor、autodetect(已弃用)。

<bean id="myBean" class="com.example.MyBean" autowire="byName"/>

depends-on:指定Bean的依赖关系,即在初始化当前Bean之前需要先初始化的Bean。

<bean id="myBean" class="com.example.MyBean" depends-on="anotherBean"/>

lazy-init:是否延迟初始化,默认值为false

<bean id="myBean" class="com.example.MyBean" lazy-init="true"/>

primary:自动装配时,如果有多个候选Bean,可以将某个Bean标记为主要候选者

<bean id="myBean" class="com.example.MyBean" primary="true"/>

配置 demo

<bean id="myBean" class="com.example.MyBean" scope="singleton" init-method="init" destroy-method="cleanup" lazy-init="true" primary="true" autowire="byType"><constructor-arg value="someValue"/><constructor-arg ref="anotherBean"/><property name="propertyName" value="someValue"/><property name="anotherProperty" ref="anotherBean"/>
</bean>

http://www.dtcms.com/a/315976.html

相关文章:

  • CPU内存管理:MMU SMMU
  • 【arXiv2025】计算机视觉|即插即用|LWGA:即插即用!LWGA模块,视觉性能炸裂!
  • 深圳AI大会前瞻:千企集结,“模驱具身”加速AI硬件革命
  • PAT 1039 Course List for Student
  • 注意点:Git 从安装到分支协作、冲突解决的完整步骤 ---待修改,没看这个步骤,需要重新整理步骤
  • Orange的运维学习日记--28.Linux逻辑卷详解
  • MATLAB实现的基于压缩感知的图像处理
  • 分布式选举算法:Bully、Raft、ZAB
  • Spring Boot与Redis连接池配置终极指南:从版本差异到生产实践
  • 【Mysql】业务视角下,SQL字段处理专题
  • VR眼动追踪技术帮助医生更快速确认大脑神经损伤与疾病
  • MySQL索引底层原理与性能优化实践
  • JavaScript性能优化实战:从核心指标分析
  • “命令行过长“?一键解决 IntelliJ IDEA 中 Java/Spring Boot 启动失败问题
  • 武汉火影数字:VR大空间在文旅产业的创新应用
  • 7、Redis队列Stream和单线程及多线程模型
  • 二手房翻新时怎样装修省钱?
  • STM32H7+FreeRTOS+LwIP移植EtherCAT开源主站SOEM
  • 【AI论文】iLRM:一种迭代式大型3D重建模型
  • 3D 材质与纹理:让虚拟模型 “以假乱真” 的核心密码
  • Linux内核C语言代码规范
  • 解决IntelliJ IDEA 项目名称后带中括号问题(模块名不一致)
  • OpenGL状态机与对象管理:优化图形渲染的高效方法
  • 支持在电脑桌面悬挂的便利贴工具好用评测
  • LeetCode 面试经典 150_数组/字符串_H 指数(9_274_C++_中等)(排序后再进行判断)(计数)
  • 应用科普 | 漫谈6G通信的未来
  • Vue中使用步骤条Steps-手写简单的步骤条功能
  • 大模型下一个飞跃?OpenAI的“新突破”:通用验证器
  • FANCU发那科机器人双脉冲焊接省气
  • 解决英飞凌Tricore编译软件Tasking加载过慢编译卡死问题