在学习Spring Boot过程中经常遇到把XX类作为Bean注入Spring容器中,那个Bean到底是什么呢?从知乎上看到一个回答。

Bean是符合一定规范编写的Java类,不是一种技术,而是一种规范。

  • 所有属性为private
  • 是一个公共类
  • 提供默认构造方法(就是无参数的构造函数)
  • 提供gettersetter方法来存取类中的属性,若属性是布尔值,则使用isXXX()getXXX()方法
  • 实现java.io.Serializable接口

满足以上的类就是Bean


这几天看书,发现了一些JavaBean的新知识,作为一下补充。

简短截说,JavaBeanJSP有渊源。JavaBean组件就是利用Java语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能地JavaBean,可以快速生成一个全新的应用程序。而JSP就是有能够使用JavaBean组件的能力。

上面这段看起来JavaBean就是一个普通的Java类,封装了一些数据。

最初,JavaBean主要应用于可视化领域,现在JavaBean更多应用于非可视化领域,JavaBean按功能可分为两类:

  • 可视化JavaBean
  • 不可视化JavaBean

可视化JavaBean就是具有GUI图形用户界面的JavaBean,对应的,不可视化的JavaBean就是没有GUI用户界面的JavaBean

不可视化JavaBean又分为值JavaBean和工具JavaBean。值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器。

public class UserInfo {
    private String name;
    private String password;
    
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name = name;
    }
    
    public String getPassword(){
        return password;
    }
    
    public void setPassword(String password){
        this.password = password;
    }    
}

JavaBean可用来封装用户登录时表单中的用户名和密码。

工具JavaBean则可以不遵循JavaBean规范,通常用于封装业务逻辑,数据操作等,例如连接数据库,对数据库进行增删查改和解决中文乱码等操作。工具JavaBean可以实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。

public class MyTools {
    public String change(String source){
        source = source.replace("<", "&lt;");
        source = source.replace(">", "&gt;");
        
        return source;
    }
}

该工具JavaBean就是用来转换字符串中"<"与">"字符的。


参考资料:
Java bean 是个什么概念?

《JSP程序设计 慕课版》第5章-JavaBean技术

标签: none

评论已关闭