javamvc中bean的正确使用

javamvc中bean的正确使用,java,model-view-controller,javabeans,Java,Model View Controller,Javabeans,我正在努力编写符合适当惯例的代码,即使这可能会增加复杂性。到目前为止,我已经成功了,但我注意到我的程序中有一种趋势 我的项目很小,是一个javaeewebapp,只有几个servlet,遵循MVC设计,并使用bean作为模型。我的问题是,我的bean通常只是“一个粘贴东西的地方,这样我就可以获得一个像样的视图”。我得到的印象是,bean当然只是数据的容器,但也意味着除了单个servlet之外还有一些可移植性和有用性 我的问题只是相对简单的代码造成的,还是我可能误用了bean的概念?bean应该用

我正在努力编写符合适当惯例的代码,即使这可能会增加复杂性。到目前为止,我已经成功了,但我注意到我的程序中有一种趋势

我的项目很小,是一个javaeewebapp,只有几个servlet,遵循MVC设计,并使用bean作为模型。我的问题是,我的bean通常只是“一个粘贴东西的地方,这样我就可以获得一个像样的视图”。我得到的印象是,bean当然只是数据的容器,但也意味着除了单个servlet之外还有一些可移植性和有用性


我的问题只是相对简单的代码造成的,还是我可能误用了bean的概念?

bean应该用于数据存储。我们正在谈论波乔豆。如果集合不足以处理应用程序使用的数据模型,则会创建符合需要的类。BEAN应该被认为只是一个临时状态保存的对象,它具有setter和getter,这些setter和getter可能具有轻微的附加功能。 如果您坚持继承和多态性这样的范例,那么当您的应用程序使用大量bean运行时,没有什么问题

如果应用程序运行在数据库上,Pojo bean还可以捕获应用程序的数据模型(域模型)。。。数据库表和bean相互对应。ORM就是这样工作的(及时保持bean的状态,反之亦然)。即使没有ORM,域访问对象层也能在由许多bean组成的域模型上运行良好

它们也是视图演示的最佳方式。将它们与收藏混合在一起。实施比较器


例如,术语“bean”开始在Spring框架中使用,它只是一个属于应用程序上下文/Spring容器的类,而不是一个getter/setter JavaBean。

我发现我的(pojo)bean在细节上只有一两个字段不同。在这方面,他们正与这一观点相结合。我想有时候这是不可避免的?@JHarnach,你看,3个不同的bean在3个字段中变化,而其他10个字段是相同的,这是一个糟糕的设计。在这种情况下,您可以自由使用继承,childBean扩展了parentBean。如果可以使用泛型,就更容易了,因为它增强了多态性的使用。创建泛型集合,而不是在拥有ArrayList并希望获取childBean时将类型从parentBean强制转换为childBean。