【问题标题】:Spring Controller and Entity ManagerSpring 控制器和实体管理器
【发布时间】:2013-02-21 22:10:15
【问题描述】:
我创建了一个带有许多控制器的 spring 模板项目。
在我的控制器中,我将连接到我的 DAO 对象,并且我的 DAO 将从我的本地数据库中保存/更新/获取休眠对象。
制作这个的最佳方法是什么?应该在同一个项目上实现,还是应该为我的控制器和另一个项目分别代表我的数据库访问?
之后,我将开发一个安卓应用程序来调用我的控制器并对数据库进行操作。
你能帮我这个架构吗?
谢谢
【问题讨论】:
标签:
spring
hibernate
spring-mvc
controllers
spring-data-jpa
【解决方案1】:
当然可以争论任何一种选择(让它们在同一个项目中或在不同的项目中)。在我的项目中,我倾向于采取务实的方法。如果您的项目足够小,则可能不值得将它们放入单独的项目模块中;在这种情况下,只需将它们在包级别分开就足够了。但是,随着项目规模的扩大,根据职责和依赖关系分离组件将很有用。
不过,我建议您避免直接在控制器中使用 DAO。这不一定是不好的做法,但您会发现您的控制器很快就会被业务逻辑(类型转换、数据操作等)淹没,而这些业务逻辑在其他地方处理得更好。这到底在哪里?好吧,您可以构建一个服务层来弥合您的 DAO 和控制器之间的差距。这样,您的服务层可以处理数据操作和其他业务逻辑,而您的控制器可以只担心从服务层获取和提供数据。希望这会有所帮助。