Java spring mvc dao和服务bean映射

Java spring mvc dao和服务bean映射,java,spring,hibernate,spring-mvc,javabeans,Java,Spring,Hibernate,Spring Mvc,Javabeans,我不熟悉春天和冬眠。 我正在努力学习j2ee应用程序中的最佳实践和设计方法 我已经成功创建了一个基本的spring mvc web应用程序。现在看看 -我应该如何将我的服务bean映射到daobean,或者只使用daobean。 -是否需要使DAO类成为单例类 -如果我对jsp使用相同的DAOBean,例如onSubmit,如果我必须在多个表(DAOBean)上输入数据,那么我将如何做到这一点。 1个服务bean到1个以上的dao bean 任何关于使用spring hibernate设计好的w

我不熟悉春天和冬眠。 我正在努力学习j2ee应用程序中的最佳实践和设计方法

我已经成功创建了一个基本的spring mvc web应用程序。现在看看 -我应该如何将我的服务bean映射到daobean,或者只使用daobean。 -是否需要使DAO类成为单例类 -如果我对jsp使用相同的DAOBean,例如onSubmit,如果我必须在多个表(DAOBean)上输入数据,那么我将如何做到这一点。 1个服务bean到1个以上的dao bean

任何关于使用spring hibernate设计好的web应用程序的参考资料都将不胜感激;)


谢谢

您必须使用服务bean。服务逻辑应该只在那里。 DAO应仅用于与DB相关的操作


现在,您可以在服务bean中注入多个DAO。

DAO层和服务层是不同的实体:

DAO负责从\获取单个对象并将其放入DB。例如,从数据库中获取用户(id、name、lastname)


服务层负责您的业务逻辑。它可以使用多个DAO对象来执行一个操作。例如,将消息从一个用户发送到另一个用户,并将其保存在第一个用户的“已发送”文件夹和收件人的“收件箱”中。

服务是向用户展示一个外观,它公开用户可以使用的业务功能。基本上,如果您有一组低级用例,那么服务上的方法将与单个用户操作一致。服务是事务性的,通常情况下,如果用户做了某件事,我们希望该行为的所有后果都被提交到一起。控制器和服务之间的分离意味着我们有一个地方可以放置webapp特定的功能,比如获取请求参数、进行验证、选择转发或重定向到哪里,还有一个地方可以放置业务逻辑,不依赖于webapp API的东西,是关于哪些对象使用哪些值更新,以及使用哪些数据访问对象持久化


我看到很多情况,人们似乎认为他们需要为每个dao提供一个服务。我认为他们的假设是,因为数据访问对象、控制器和模型对于它们的定义是相当机械的,所以服务必须是相同的方式,并且它们构建它们时不考虑正在实现的用例。发生的情况是,除了有大量无用的服务样板代码外,所有业务逻辑最终都在控制器中,与特定于web的代码混杂在一起,控制器变得庞大且无法管理。如果您的应用程序非常简单,您可以暂时使用它,但它是无序的,很难测试,而且通常是个坏主意。分离关注点,将基础架构代码放在一个地方,将业务代码放在另一个地方,这是我们应该追求的目标,正确使用服务对实现这一目标非常有帮助。

FWIW-我刚刚在Spring上经历了一个类似的学习过程。好消息是,谷歌上有很多例子;坏消息是,对于新手来说,没有太多“完整”的例子是好的(同样,如果你打算针对v3 Spring,那么根据新的基线,有很多v3之前的东西可能会让人困惑)。对我有用的是:从SpringSource站点上的示例应用程序开始(http://www.springsource.org/documentation). 在他们为数不多的例子中,有几乎所有你需要的部分,至少以最小的形式。当我在这些例子中找到我需要的东西时,我根据类似的术语(一些@annotation等)在谷歌上搜索,以找到关于给定主题的更完整的信息/更好的例子。许多这样的搜索让我回到了这个网站,这就是为什么我开始经常光顾这里——很多好问题已经得到了回答。我想这不是一个很有见地的答案,但这个过程让我在相当短的时间内完成了基础工作。

我可以在只使用spring mvc的情况下将DAO注入服务,并且只需要添加applicationContext.xml???@user330281是的,你应该将DAO注入服务层,关于只使用SpringMVC,只需要添加applicationContext.xml的
这部分我不清楚