序言: JSF+EJB+JPA 其实没有想象中的难,不过要做好应用以及在合适的地方建立应用,才是真正的难点. 好的技术在不合适的地方做了应用,那也只能是垃圾. 所以这个东西并不适合于太小规模的企业应用. 重量级企业应用可以使用这个基本的3层结构的实现,来增加更多的企业级应用.而这些基本上不怎么需要修改,可以说是可以独立开来维护的部分.至于耦合性,关键看如何建立应用了,这个又和项目开始的分析和设计密切相关.
目的: 建立JSF,EJB,JPA 之间的连接以达成基础结构建设
功能: JSF: 表述层应用. 用来输出处理结果和与用户交互界面. 业务层逻辑可以用JSF的manage bean 和EJB 的 session bean 来一起承担.
EJB: 逻辑层应用. 主要处理业务逻辑和系统逻辑.
JPA: 持久层应用. 在逻辑层和数据层之间作为数据缓冲的存在.以提高对数据存取和操作的效率和稳定.
表述层->逻辑层->持久层->数据层
所需文件:
JSF: 页面文件(jsp),管理bean,face定义文件(可以与页面导航合用)
JEB: 以entity bean(实体bean)为基础的 session bean(会话bean).系统逻辑单元.另外包含各种自定义exception
JPA: entity bean,数据库映射,持久层定义文件.
例子: 用户输入username 和 password 来进行验证.
JSF: 页面 login.jsp. LoginBean.java(作为controller的作用).faces-config.xml
EJB: Login.java(session bean),LoginRemote.java,UserFacade.java,UserFacadeLocal.java,LoginException.java
JPA: User.java(entity bean), xxx.dbschema,persistence.xml
以上10个文件,完成了基础的结构设置.
当然了,根据需要可以对这种结构进行更多的扩充,以达到事务分类的目的.
这样的结构可以与JCA,JAAS,JCE,JMS,Web Service等企业级其他应用相结合,以适合项目的应用建设.