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

JavaBean知识总结及范例

一、什么是 JavaBean?

JavaBean 本质上是一个符合特定编码约定的 Java 类。它不是一个框架或技术,而是一种标准/规范。遵循这个规范的类,可以被特定的工具(如 IDE、Spring 框架等)更便捷地发现、使用和操作。


二、JavaBean 的核心规范(必须遵守)

  1. 公共类

    • 类必须使用 public 修饰,以便被外部访问。
  2. 公共的无参构造方法

    • 必须提供一个显式的或默认的 public 无参构造器。这是为了便于反射机制实例化对象。
  3. 私有属性

    • 类的成员变量(属性)必须使用 private 进行封装,以实现数据的隐藏和保护。
  4. 公共的 Getter 和 Setter 方法

    • 为每个私有属性提供公共的 getXxx()setXxx() 方法。
    • 命名规范
      • Getter: public 属性类型 get属性名()。对于布尔类型,可以是 getXxx()isXxx()
      • Setter: public void set属性名(属性类型 参数)
    • 这些方法允许外部代码以受控的方式读写属性值。
  5. 可序列化(可选但常见)

    • 实现 java.io.Serializable 接口。这表示该类的对象可以被序列化(例如,存储到文件、通过网络传输等)。在 Web 应用和分布式系统中非常常见。

三、JavaBean 的作用

  • 封装数据:将数据和操作数据的方法绑定在一起。
  • 代码重用:作为一个可复用的组件。
  • 便于工具和框架操作
    • IDE:可以通过属性面板直观地设置属性。
    • JSP:可以通过 <jsp:useBean>, <jsp:getProperty>, <jsp:setProperty> 标签直接操作。
    • Spring:通过 Setter 注入依赖。
    • Hibernate/MyBatis:作为持久化对象(POJO)与数据库表映射。
    • 各种库:如 Apache Commons BeanUtils, Spring BeanWrapper 等,都依赖 JavaBean 规范来动态读写属性。

四、范例:一个标准的 JavaBean

下面是一个完整的 User JavaBean 示例。

// 1. 公共类
// 2. 实现 Serializable 接口(可选)
public class User implements java.io.Serializable {// 3. 私有属性private Long id;private String name;private String email;private boolean isActive; // 布尔类型// 4. 公共的无参构造方法public User() {// 默认构造器}// 带参构造器(可以有,但无参的必须存在)public User(Long id, String name, String email) {this.id = id;this.name = name;this.email = email;}// 5. 公共的 Getter 和 Setter 方法// 对于 id 属性public Long getId() {return id;}public void setId(Long id) {this.id = id;}// 对于 name 属性public String getName() {return name;}public void setName(String name) {this.name = name;}// 对于 email 属性public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}// 对于布尔类型 isActive// 方式一:使用 isXxx()public boolean isActive() {return isActive;}public void setActive(boolean isActive) {this.isActive = isActive;}// 方式二:也可以使用 getXxx(),但 isXxx() 更常见// public boolean getIsActive() {//     return isActive;// }// 重写 toString 方法(好习惯,便于打印日志和调试)@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", email='" + email + '\'' +", isActive=" + isActive +'}';}
}

五、如何使用这个 JavaBean

在其他 Java 类中,你可以像使用普通对象一样使用它:

public class Main {public static void main(String[] args) {// 使用无参构造器创建对象User user1 = new User();// 使用 Setter 方法设置属性user1.setId(1L);user1.setName("Alice");user1.setEmail("alice@example.com");user1.setActive(true);// 使用 Getter 方法获取属性System.out.println("User Name: " + user1.getName());System.out.println("Is Active: " + user1.isActive());System.out.println(user1); // 调用 toString()System.out.println("---------------");// 使用带参构造器创建对象User user2 = new User(2L, "Bob", "bob@example.com");System.out.println(user2);}
}

输出结果:

User Name: Alice
Is Active: true
User{id=1, name='Alice', email='alice@example.com', isActive=true}
---------------
User{id=2, name='Bob', email='bob@example.com', isActive=false}

六、在 JSP 中使用 JavaBean(历史用法,了解即可)

在早期的 JSP 中,有专门的标签来操作 JavaBean:

<%-- 实例化一个 User 对象,并将其放入 page 作用域 --%>
<jsp:useBean id="user" class="com.example.User" scope="page"/><%-- 设置属性,等价于 user.setName("Charlie"); --%>
<jsp:setProperty name="user" property="name" value="Charlie"/><%-- 获取属性,等价于 <%= user.getName() %> --%>
<p>User Name: <jsp:getProperty name="user" property="name"/></p>

总结

特性 描述
本质 遵循特定规范的 Java 类。
核心规范 1. 公共类
2. 公共无参构造
3. 私有属性
4. 公共 Getter/Setter
5. (可选) 可序列化
核心价值 封装标准化,使得类可以被各种工具、框架通过反射机制轻松操作。
现代应用 是 Spring 框架中的 Bean、Hibernate/MyBatis 中的实体类等的基石。

记住,JavaBean 的核心思想就是 “约定大于配置”。只要你遵守了这些简单的约定,你的类就能无缝集成到大量优秀的 Java 生态工具和框架中。

http://www.hskmm.com/?act=detail&tid=32799

相关文章:

  • 2025 年家装管道生产厂家最新推荐排行榜:覆盖云南昆明贵州贵阳四川成都重庆,精选优质 PPR/PVC 管道品牌,解决选购难题
  • 同一设备多账号登录,如何避免消息推送“串门”?
  • 强合规行业DevOps选型:告别工具拼凑,找到真正适配的国产化DevOps方案
  • 大疆无人机RTMP推流至LiveNVR实现web页面实时播放与录像回放,并可以转GB28181协议级联推送给上级监控视频管理平台
  • Character Animator 2025下载安装教程:2D角色动画软件零基础入门,附最新下载安装教程及激活方法
  • 2025年彩钢瓦/镀锌板/折弯件/C型钢/Z型钢/压型瓦/楼承板/次檩条厂家推荐排行榜,专业钢结构安装与定制加工实力解析
  • 2025 年最新金相厂家最新推荐排行榜:涵盖金相磨抛机 / 切割机 / 显微镜 / 抛光机 / 预磨机设备,助力企业精准选择优质品牌
  • 武汉图核科技
  • 完整教程:display ospf peer 概念及题目
  • 2025中国开发者必看:主流代码托管平台本土化能力深度测评
  • 开源数据采集工具 logstash(收集日志)/telegraf(收集指标)
  • 2025年粉末冶金制品厂家推荐排行榜,粉末冶金零件,金属注射成形,结构件,齿轮,轴承公司最新精选
  • 2025 年升降平台车厂家最新推荐口碑排行榜:覆盖多类型产品,聚焦实力厂家,为企业选购提供权威参考剪叉式/手动液压/电动液压升降平台车厂家推荐
  • 供应商图纸协同是什么?主要有哪几个核心原则?
  • 2025 年堆高车厂家最新推荐排行榜:聚焦专利技术、华为等大牌合作案例及国内优质品牌解析手动液压/手动液压/卷筒/油桶堆高车厂家推荐
  • 2025 年最新推荐!编码器源头厂家排行榜:聚焦无磁 / 光学 / 脉冲等多类型产品,精选行业优质企业
  • Excelize 开源基础库发布 2.10.0 版本更新
  • 高效搞定outlook大附件怎么发送的方法与技巧
  • 2025年点胶机厂家权威推荐榜:精密点胶设备、自动化点胶系统、桌面点胶机源头厂家综合实力解析
  • HAP 签名提取:从定位到解析的实操指南
  • 深入解析:Redis List 类型全解析
  • 内外网文件传输工具有哪些?最强合集在这里
  • 汇川伺服常用参
  • IC 测试革新
  • 2025 年自动售卖机厂家最新推荐榜单:智能 / 无人 / 文创 / 盲盒 / 食品全品类优选,高性价比品牌选购指南
  • 使用SecureCRT从linux上传下载文件方法
  • 2025年保洁公司权威推荐榜:苏州/昆山驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁全方位解析
  • Content Hub接口文档
  • 2025年防水织带/鞋垫/编织包/松紧带/鞋带/织带/飞织鞋面厂家最新推荐榜单:专业工艺与创新设计深度解析
  • 2025年方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢/热轧钢厂家最新权威推荐榜:Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B钢材实力解析