十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Spring学习笔记06——bean、java bean、spring bean、POJO几个概念讲解

Spring学习笔记06——bean、java bean、spring bean、POJO几个概念讲解 一次讲清楚这几个概念及其区别一、Bean在Java开发中“Bean”这个词的具体含义需要根据上下文来区分它可能指Java Bean标准Java规范或Spring BeanSpring框架中的概念。二、Java Bean标准规范定义符合特定编码规范的普通Java类主要用于封装数据是一种通用的编程约定。特点必须满足的条件有无参构造方法public User() {}通过公共的Getter/Setter访问属性可序列化implements Serializable可选注意 一般字段定义私有化private如果字段用public也算是java bean但属于不规范的java bean.典型用途数据传输对象DTO实体类Entity如JPA/Hibernate映射数据库表GUI开发如Swing组件示例publicclassUserimplementsSerializable{privateStringname;publicUser(){}// 无参构造publicStringgetName(){returnname;}// GetterpublicvoidsetName(Stringname){this.namename;}// Setter}简单来说Java Bean是Java开发中约定俗成的数据盒子让数据传递更安全、更自动化。在Java开发中Bean全称JavaBean是一个特殊的Java类它遵循特定的设计规范主要用于封装数据。你可以把Bean想象成一个标准的数据容器它的核心作用是让数据在不同模块之间规范、安全地传递。二、Spring BeanSpring框架概念定义由Spring IoC容器管理的Java对象可以是任何类不一定是Java Bean规范类。被 Spring 管理的对象就像工厂流水线上生产的“标准产品”。这些对象不是你自己 new 出来的而是由 Spring 容器一个超级工厂帮你创建、组装、管理。特点管理方式通过注解如Component,Service,Controller或XML配置声明。Spring负责创建、组装、管理其生命周期如依赖注入、单例/多例控制。不强制要求不一定需要无参构造或Getter/Setter但依赖注入时可能需要。典型用途服务层Service控制器Controller数据库访问层Repository示例Service// 声明为Spring BeanpublicclassUserService{publicvoidsaveUser(Useruser){...}}核心价值✅控制反转IoCSpring自动管理对象依赖关系降低耦合。Java bean和Spring bean关键区别对比项Java BeanSpring Bean规范来源Java语言规范Spring框架定义主要目的数据封装依赖注入和组件管理是否需无参构造必须可选依赖注入方式决定是否需Getter/Setter必须可选但推荐有便于框架处理典型注解无Component,Service等Spring bean的定义比较广泛java bean 所定义的概念相对比较狭窄。只要被Spring管理的Java bean就属于spring bean否则就不是。由 Component、Service、Controller 等注解标记的类都会变成 Spring 管理的 Bean。这些注解就像是给类贴了一个标签告诉 Spring“嘿这个类交给你了帮我管理它”四、POJO定义POJOPlain Old Java Object 是一个普通的 Java 对象不依赖任何特定框架或接口没有强制性的约束。它的核心思想是保持代码的简洁性和可移植性避免与特定技术绑定。特点无需继承特定父类或实现特定接口。没有强制的代码规范如无参构造器、Getter/Setter。可以自由定义字段和方法。目的简化代码结构避免框架侵入性设计。示例publicclassUser{publicStringname;// 直接暴露字段不符合Java Bean规范publicintage;publicUser(Stringname,intage){// 可以自定义构造器this.namename;this.ageage;}}Entity、DTO、VO 都属于 POJO它们是具有特定用途的POJO。Java bean是符合特定规范的 POJO无参构造 getter/setter 可序列化。POJO和Java bean的关系与区别特性POJOJava Bean约束无强制规范自由定义必须符合特定规范如 Getter/Setter序列化可选通常需要实现Serializable构造器可有任意构造器必须有无参构造器框架依赖无依赖常被框架如 Spring管理灵活性高较低需遵守规范关系Java Bean 是 POJO 的子集所有 Java Bean 都是 POJO但 POJO 不一定是 Java Bean。核心区别Java Bean 的规范更严格POJO 更自由。使用场景POJO适用于简单的数据传输对象DTO、领域模型等无需框架约束。Java Bean适用于需要被框架如 Spring IoC、工具如 JPA/Hibernate管理的组件或需要序列化的场景。五、总结**Bean这个词的具体含义需要根据上下文来区分它可能指Java Bean标准Java规范或Spring BeanSpring框架中的概念。POJO是普通 Java 对象强调简单性。Entity、DTO、VO 都属于 POJO它们是具有特定用途的POJO。Java Bean是标准化的POJO强调规范与兼容性。Java Bean一定是POJO但POJO不一定是Java BeanJava Bean的规范更严格POJO 更自由例如Java Bean必须有Getter/Setter方法并且必须有无参构造器而POJO不必须。Spring Bean的范围更大 只要被 Spring 管理的对象都是Spring Bean意味着Java Bean和POJO如果被Spring 管理即它们都称为Spring Bean如果不被Spring管理那就不是。很多Sping Bean不一定就是POJO也可能是其它功能比较复杂的Java对象。
返回列表