3

当我查看有关 java bean 的不同站点时,我看到它说它是一个可重用组件,但可重用组件在实际中意味着什么。我找不到任何可以重复使用的例子,我也找不到任何描述相同的例子。请为此提供一个示例。Java bean 有 getter 和 setter 方法,那么它在什么意义上是可重用的?

public JavaBean{
    public String msg;
    public JavaBean()
    {
        msg="hwllo";
    }
    public string getMsg()
    {
        retrun msg;
    }
    public void setmsg(String msg)
    {
        this.msg=msg;
    }
}
4

5 回答 5

0

“可重用”意味着您可以在许多不同的项目中使用代码。例如,所有 Swing 组件也是 Java Bean。您可以使用 JFrame 任意多个程序。

于 2013-02-22T06:43:13.187 回答
0

Java bean 是简单的 Java 类,它们符合某些规则,例如:

1) 无 arg(默认)公共构造函数 2) 对于每个属性都应该有一个访问器 (get) 和一个修改器 (set) 方法 3) Get/Set 方法应该遵循一定的命名约定 4) 类应该是可序列化的

如果您遵循这些规则,那么其他(可能是第 3 方)软件可以discover在运行时使用您的类的功能并重用它。例如struts tags,在许多 Web 应用程序中重用的简单 Java bean。通常,Java Bean 以某种container管理生命周期的方式执行,例如创建、方法调用、销毁等。容器(例如 servlet 容器、spring 容器等)甚至可以在您实际使用之前实例化您的类并填充其属性在你的代码中。通过这种方式,从重用它的代码中取出了许多样板/重复逻辑(对象的创建、属性的填充)。

于 2013-02-22T07:04:50.657 回答
0

可重用组件只是预先构建的用于执行特定功能的编程代码。
Bean 是代码的“胶囊”,每一个都是为特定目的而设计的。Java Bean 相对于标准编程控件的优势在于 Bean 是独立的,并且不特定于操作系统或开发环境。在一个开发环境中创建的 Bean 可以很容易地被另一个环境复制和修改。这使得 Java Beans 在企业计算中具有更大的灵活性,因为组件很容易在开发人员之间共享。Beans 背后的一个令人兴奋的概念源于这样一个事实,即用 Java 创建的应用程序可以用作 Bean,它可以用来构建其他应用程序。

于 2013-02-22T07:10:57.487 回答
0

Java Bean可重用组件是稍微不同的东西。里面说了很多关于Java Beans的话,请看一下。最后 - 它只是一组约定,一些框架、应用程序和其他程序员 :) 期望从您的代码中获得这些约定。没有其他的。

可重用组件更通用,意味着您可以在系统/应用程序的不同部分重用代码。甚至其他应用程序也可以使用您的代码,以 API 的形式公开。处理字符串的简单实用程序类、一些域对象(例如 Student 类,哦, Java Bean也在那里!)、一些电子邮件发送服务 XML 解析器——所有这些都是可重用的组件。

UPD。从评论中回答问题,简单的打印可重用组件

public class OutStd {

  public static void print(String string) {
      System.out.println(string);
  }

}

public class SomeOtherComponent() {

  public void doSomeImportantStuff() {
    // reuse existing print functionality
    OutStd.print("Some string");
    // other stuff
  }

}
于 2013-02-22T07:14:49.927 回答
-1

是的,java beans 是一段可重用的代码,这意味着你可以在任何地方重用它。下面是一个例子。

package customer;
import java.io.*;
import java.util.*;
import java.sql.*;

public class Customer implements Serializable
{

        private String custID;
        private String custName;
        private int qty;
        private float price;
        private float total;
        private int storeCust;

        public String getCustID() {
            return custID;
        }

        public void setCustID(String custID) {
            this.custID = custID;
        }

        public String getCustName() {
            return custName;
        }

        public void setCustName(String custName) {
            this.custName = custName;
        }

        public int getQty() {
            return qty;
        }

        public void setQty(int qty) {
            this.qty = qty;
        }

        public float getPrice() {
            return price;
        }

        public void setPrice(float price) {
            this.price = price;
        }

        public float getTotal() {
            return total;
        }

        public void setTotal(float total) {
            this.total = total;
        }

        public int setStoreCust() 
        {
            try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/usermaster","admin","password");
            PreparedStatement pstmt=null;
            String query=null;
            query="insert into customer values(?,?,?,?,?)";
            pstmt=con.prepareStatement(query);
            pstmt.setString(1,custID);
            pstmt.setString(2,custName);
            pstmt.setInt(3,qty);
            pstmt.setFloat(4,price);
            pstmt.setFloat(5,total);
            int i=pstmt.executeUpdate();

            this.storeCust=i;
            }
            catch(Exception e)
            {

            }
            return storeCust;
        }
}

这是一个jsp页面

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="customer.Customer" %>
<html>
    <head>
        <title>JSP and JavaBean</title>

        <%-- create an instance of Customer class --%>
        <jsp:useBean id="cObj" scope="request" class="customer.Customer">

        <%-- Set the value of attribute such as CustID --%>
        <jsp:setProperty name="cObj" property="*" />
        </jsp:useBean>

    </head>
<body>

<%
            int x=cObj.setStoreCust();

            if(x>=1)
            {
        %>
                <jsp:forward page="Success.jsp" />
        <%

            }
            else
            {
        %>
                <jsp:forward page="Failure.jsp" />
        <%

            }

        %>

当您运行此 jsp 页面时,它会询问客户 ID、数量、总数等,并在您提交后将其插入数据库。例如,您要输入 1000 条记录,因此此时您不是创建 1000 次 java 文件,只需创建一次,然后一切都将由 bean 完成。

以下是javabeans的一些规则,请记住

1.javabean 必须包含一个不接受任何争论的构造函数。2.javabean不能声明任何公共实例变量;3.javabeans 必须包含JSP 需要访问的所有属性的get 和set 方法。

于 2013-02-27T04:12:21.850 回答