7.5.10: Spring的Bean和JavaBean的比较

Spring容器对Bean没有特殊要求,甚至不要求该Bean像标准的JavaBean那样必须为每个属性提供对应的getter和setter方法。Spring中的Bean是Java实例、Java组件;而传统的Java应用中的JavaBean通常作为DTO(数据传输对象),用来封装值对象,在各层之间传递数据。

虽然Spring对Bean没有特殊要求,但还是建议Spring中的Bean应该尽量满足如下几个原则:

① 尽量为每个Bean实现类提供无参数的构造器。

② 接受构造注入的Bean,应该提供对应的构造函数。

③ 接受设值注入的Bean,应该提供对应的setter方法,并不强制要求提供对应的getter方法。

传统的JavaBean和Spring中的Bean存在如下区别

① 用处不同:传统的JavaBean更多作为值对象传递参数;Spring中的Bean用处几乎无所不包,任何应用组件都被称为Bean。

② 写法不同:传统的JavaBean作为值对象,要求每个属性都提供getter和setter方法;但Spring的Bean只需为接受设值注入的属性提供setter方法。

③ 生命周期不同:传统的JavaBean作为值对象传递,不接受任何容器管理其生命周期;但Spring中的Bean由Spring管理其生命周期行为。

你可能感兴趣的:(spring,bean,javabean)