JavaBean,POJO的简单理解 ,JavaBean与Spring中bean的区别

本文是我查阅多篇博客总结下来的,不过有些概念可能理解还不够准确,欢迎大家纠错改正。

Java的一个特性,数据与行为相分离。数据就是成员变量,行为就是setter和getter方法

JavaBean是Java中开发的可以跨平台的重要组件,在JSP中常用来
封装业务逻辑和数据库操作。

JavaBean是一种特殊的Java类,即:有公共的 无参的  构造方法,只有get和set方法的java类的对象。

JavaBean功能上分为两类:
  封装数据
  封装业务

JavaBean一般情况下要满足以下要求:
  1.是一个公有类,并提供无参的构造方法。

  2.属性私有。

  3.具有公有的setter和getter方法。

  4.这个类应是可序列化的。(比如可以实现Serializable 接口,用于实现bean的持久性)

JavaBean的应用:
 JavaBean封装数据:
  实际上就是数据库中某一张表的字段进行封装,
     每一个属性都要与数据库表中字段一一对应。
 
 JavaBean封装业务:
  封装数据的JavaBean一般都会有一个封装该类的
     业务逻辑和操作与之对应。如:Dao层中的类。

  service层用于存放业务逻辑相关的操作。
  service层中的接口和类对Dao类的方法实现了封装和调用。


POJO(Plain Ordinary Java Object):

一开始我认为POJO是简单的JavaBean,里面只有封装数据,没有任何业务逻辑代码。

但其实它们两个之间是有区别的,不然为什么会出现POJO和JavaBean这个不同的词语。

参考文章:https://blog.csdn.net/chenchunlin526/article/details/69939337

总结下来区别就是

POJO是一个简单的、普通Java对象,它包含业务逻辑处理或持久化逻辑等

但不是JavaBean、EntityBean等,不具有任何特殊角色,不继承或不实现任何其它Java框架的类或接口。

但是,当一个POJO可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean。

package pojo;
 
public class Person {
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
 
}

那么传统JavaBean和Spring的Bean区别在哪里呢?

javabean已经很少人用了

springbean可以说是javabean的发展, 但已经完全不是一回事儿了

1.用处不同:传统javabean更多地作为值传递参数,而spring中的bean用处几乎无处不在,任何组件都可以被称为bean。

2.写法不同:传统javabean作为值对象,要求每个属性都提供getter和setter方法;但spring中的bean只需为接受设值注入的属性提供setter方法。

3.生命周期不同:传统javabean作为值对象传递,不接受任何容器管理其生命周期;spring中的bean有spring管理其生命周期行为。

所有可以被spring容器实例化并管理的java类都可以称为bean。

原来服务器处理页面返回的值都是直接使用request对象,后来增加了javabean来管理对象,所有页面值只要是和javabean对应,就可以用类.GET属性方法来获取值。javabean不只可以传参数,也可以处理数据,相当与把一个服务器执行的类放到了页面上,使对象管理相对不那么乱(对比asp的时候所有内容都在页面上完成)。

spring中的bean,是通过配置文件、javaconfig等的设置,有spring自动实例化,用完后自动销毁的对象。让我们只需要在用的时候使用对象就可以,不用考虑如果创建类对象(这就是spring的注入)。一般是用在服务器端代码的执行上。

猜你喜欢

转载自blog.csdn.net/weixin_41866960/article/details/83927802
今日推荐