使用Hibernate / JPA的Java Server Faces中的数据持久性
我打算用Java Server Faces构建一个Web应用程序,但我不确定如何处理我的实体的持久性。 对于php项目,我在Doctrine 2中使用Symfony框架。我主要在控制器中调用实体管理器的持久化方法。 所以没有业务逻辑的单独类。 我试过Hibernate,我认为这是一个很好的替代原则。 ;)
java项目适用于大学,我想将业务逻辑从控制器/ bean转移到业务逻辑类。
我阅读了关于数据访问对象和存储库模式的文章和教程(http://docs.spring.io/spring-data/jpa/docs/1.3.0.RELEASE/reference/html/jpa.repositories.html)。
在数据访问对象模式中,我有一个用于我的实体的类和一个接口以及一个用于DAO对象/实体的类,在存储库模式中,我有一个用于实体的类和一个用于repisitory的类。
但我的业务逻辑在哪里? 我是否必须为业务逻辑层编写一个接口和一个类,并在类内部简单地调用我的dao / repository方法? 如果是这样,两种模式有什么区别?
如果我完全错误:Java Server Faces中数据持久性(使用Hibernate / JPA)的(行业)标准是什么?
项目的架构必须按照“低耦合,高内聚”的原则进行组织,
系统层应该很好地分离。 基础架构有3层。
正如你可以在照片中看到的。 您的JSF托管的bean应该只能够处理来自页面(控制器)和页面数据(模型)的请求。 你可以看看这个答案来理解JSF MVC。 因此,最好不要在JSF托管的bean内部连接数据库。 这不是一个好习惯。
你问题的第二部分。 所有的技术,Hibernate,JPA,Spring JDBC,都使用相关数据库的JDBC驱动程序。 JDBC驱动程序是连接到数据库的正确事物。 但是,选择一种如何连接到DB,Hibernate,JPA或Spring JDBC的方法是很麻烦的。
您可以下载基本上实现此架构的示例应用程序。
链接地址: http://www.djcxy.com/p/61423.html上一篇: Data persistence in Java Server Faces with Hibernate/JPA