Spring高手之路-Spring Bean、Java Bean和对象的区别与联系

目录

什么是Spring Bean

什么是Java Bean

什么是对象

Spring Bean与Java Bean与对象的联系与区别

联系

区别


什么是Spring Bean

在Spring官方文档中对Bean的解释如下:

In Spring, the objects that form the backbone of your application and that are managed by the Spring loC 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容器实例化、组装和管理的对象。

概念简单明了,我们提取处关键的信息:


1. bean是对象,一个或者多个不限定
2.bean由Spring中一个叫IoC的东西管理

由此可以得出,由Spring(Ioc)管理的对象就称之为Bean。

什么是Java Bean

简单来说符合Java Bean规范的特殊Java类就是Java Bean。Java Bean是一种Java语言规范,它是一种可重用的、可序列化的、具有无参构造函数和符合特定命名约定的Java类。Java Bean的属性通过getter和setter方法进行访问和设置,它可以被用于各种用途,如数据传输、持久化、GUI组件等。

Java Bean 对象通常具有以下特征:

  1. 类必须是具有无参构造函数的公共类。
  2. 私有属性应该使用标准的 getter 和 setter 方法进行访问。
  3. 可选地,可以实现序列化接口以支持对象的持久化和网络传输。
  4. 可选地,可以提供其他方法来实现业务逻辑。

除了 Java Bean,还存在其他类型的对象或组件模型,它们可能不符合 Java Bean 的规范或具有其他特定的设计目的。

  1. 简单的数据传输对象(DTO):DTO 是一种用于封装和传输数据的对象模型,通常与数据库表或远程服务的数据结构直接对应。与 Java Bean 不同,DTO 可能没有标准的 getter 和 setter 方法,并且可能包含来自多个来源的数据字段。

  2. 实体类(Entity Class):实体类用于表示领域模型中的实体或业务对象,通常用于持久化和数据操作。与 Java Bean 不同,实体类可能包含与数据库交互相关的注解、查询方法或业务逻辑。

  3. 值对象(Value Object):值对象是一种不可变对象,其主要目的是封装一组相关的属性值。与 Java Bean 不同,值对象通常没有公共的 setter 方法,并且可能重写了 equals()hashCode() 方法以支持值比较。

什么是对象

对象是面向对象编程中的基本概念,是类的实例。对象具有状态(属性)和行为(方法),可以通过创建类的实例来表示具体的对象,可以相互之间进行交互和通信。那么Java 是实现了面向对象编程规范的一种,Java Bean也就是对对象的实现方式

Spring Bean与Java Bean与对象的联系与区别

联系

Spring Bean可以理解为一个被 Spring 容器所管理的对象(不一定是JavaBean),Spring Bean的本质就是Java中的类,它被Spring容器所管理,称它为Spring Bean。

三者之间的范畴关系如下:

简单来说,对象的范畴最广,Spring Bean、Java Bean同在对象范畴之内,但这两者存在交集,Java Bean可以被Spring管理成为Spring Bean,但不符合Java Bean规范的类(如POJO)也可以被Spring管理成为Spring Bean。

区别

Java Bean是一种符合规范的Java类,而Spring Bean是Spring框架中的一种对象管理机制。

Java Bean通常需要手动创建和配置,而Spring Bean可以由Spring容器自动创建和管理。

Java Bean没有依赖注入的特性,而Spring Bean可以通过依赖注入实现解耦和灵活性。

Java Bean通常是轻量级的,而Spring Bean可以是重量级的,可以具有更复杂的功能和特性。

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

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

相关文章

C++ 二进制图片的读取和blob插入mysql_stmt_init—新年第一课

关于二进制图片的读取和BLOB插入一共包含五步 第一步:初始化 MYSQL_STMT* stmt mysql_stmt_init(&mysql); 第二步:预处理sql语句 mysql_stmt_prepare(stmt,sql,sqllen); 第三步:绑定字段 mysql_stmt_bind_param(stmt,bind); 第四…

【华为机试】2023年真题B卷(python)-靠谱的车

一、题目 题目描述: 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。 出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其…

thinkphp6入门(14)-- 多关联模型查询

背景: 有3个数据表,一个User表,一个Cloth表,一个Shoe表。 Cloth表和Shoe表分别和User表通过user_id关联。 thinkphp 6中如何通过模型查询所有用户,其中包括每个用户的cloth和shoe。 多关联模型查询: 1.…

邮件群发称呼怎么写?写群发邮件开头技巧?

如何写外贸邮件群发称呼?外贸群发邮件开头怎么称呼? 邮件群发已成为企业、个人和组织之间沟通的重要手段。而一个恰当的称呼,不仅能够展现出礼貌和尊重,还能够拉近彼此的距离。那么,如何写好邮件群发的称呼呢&#xf…

【2024年必看】私域裂变的10大秘籍,让你轻松玩转市场!

在私域时代,企业需要不断地寻找新的用户来扩大自己的用户群体。然而,随着获客成本的逐渐升高,传统的广告宣传和推广方式已经不再是最优选择。因此,“老带新”的裂变策略成为了企业拉新的首选。 通过给予老用户奖励,刺…

ChatGPT持续火热,OpenAI年收入突破16亿美元

著名科技媒体The Information消息,由于OpenAI的ChatGPT等产品实现强劲增长,其年收入将突破16亿美元。 这主要得益于OpenAI在2023年发布了一系列重磅产品,包括GPT-4、ChatGPT企业版、GPT-4 Turbo、DALLE 3、苹果/安卓应用、自定义GPTs、Assis…

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问…

vis 动态添加数据

借鉴两篇文章作出了demo效果 vue用vis插件如何实现网络拓扑图_vue.js_脚本之家 src/App.vue yaofengqiao/vis-demo - Gitee.com mounted () {this.getList();},methods: {getList() {allRelation(this.queryParams).then(response > {var edgeList response;var edges n…

Go语言基础简单了解

文章目录 前言关于Go学习流程 基础语法注释变量常量数据类型运算符fmt库 流程控制if、switch、selectfor、break、continue遍历String 函数值传递和引用传递deferinit匿名、回调、闭包函数 数组和切片Map结构体自定义数据类型接口协程和channel线程锁异常处理泛型文件读取文件写…

进制的计算方法

目录 一、什么是进制 二、进制是干什么的 三、进制的计数规则 四、进制相互转换 五、用计算器计算进制 六、进制前缀 一、什么是进制 生活中进制无处不在,最常用的就是十进制。如果你没有接触过计算机或者是通信相关的知识,那么大概率你只知道十进…

09、docker 安装nacos并配置mysql存储配置信息

docker 安装nacos并配置mysql存储配置信息 1、docker启动nacos的各种方式2、Docker安装nacos3、MySQL中新建nacos的数据库4、挂载数据or配置目录5、运行 1、docker启动nacos的各种方式 内嵌derby数据源 docker run -d \ -e PREFER_HOST_MODEhostname \ -e SPRING_DATASOURCE_…

云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱

云原生容器编排问题盘点,总结分享年度使用Kubernetes的坑和陷阱 Kubernetes与云原生性能问题:忽略节点选择器导致调度效率低下问题排查和分析解决方案案例介绍 配置问题:应用服务端口与Service(KubectlProxy)控制的端口…