我打算用Java Server Faces构建一个Web应用程序,但是我不确定如何处理实体的持久性。对于php项目,我将Symfony框架与Doctrine 2配合使用。我主要在控制器中调用实体管理器的persist方法。因此,没有单独的业务逻辑类。我尝试了Hibernate,我认为这是Doctrine的很好的替代品。;)
Java项目是针对大学的,我想将业务逻辑从控制器/ bean转移到业务逻辑的类。
我阅读了有关数据访问对象和存储库模式的文章和教程(http://docs.spring.io/spring-data/jpa/docs/1.3.0.RELEASE/reference/html/jpa.repositories.html)。
在数据访问对象模式中,我为我的实体有一个类,为我的DAO对象/实体有一个接口,为我的DAO对象/实体类,在存储库模式中,我有一个针对我的实体的类和一个为副本的类。
但是我的业务逻辑在哪里?我是否需要为业务逻辑层的每个实体编写一个接口和一个类,并且在这些类内部(我只是简单地调用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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句