基于TAPESTRY 5+EJB 3架构的石化行业管理系统实现_亚博登录官方网站

基于TAPESTRY 5+EJB 3架构的石化行业管理系统实现_亚博登录官方网站

亚博手机登录

【亚博手机登录】[概要] 传统的石化行业管理主要以电子文档和纸质材料为媒介,集中且不便于集中管理。回应,本文明确提出研发基于Tapestry 5和EJB 3的B/S架构的数据库管理系统,对多年累积的数据展开汇总分析,为高级管理人员获取决策参考。

  [关键词] Tapestry;EJB 3;框架 毕业论文网 http://www.lw54.com   Web应用程序可以分成表示层、业务层、长久层和领域模型层。按照这种分层结构,本文分别讲解Tapestry和EJB 3两种开源框架。Tapestry使得程序具备一致性的结构,通过研发Tapestry组件,强化了代码的适配性和程序的健壮性。融合项目实例讲解了如何统合这两种框架建构Web的应用于。

应用于这种统合框架,可以使系统层次明晰,并构建层之间的解法耦,各层可以独立国家研发,极大地提高了研发效率。      1 基于Tapestry+EJB3的软件架构      1.1 Tapestry框架概述   Tapestry是一个用于Java语言创立Web应用于的面向组件的开源框架。其中Tapestry 5是框架的第5个版本。

Tapestry应用于创建在根据组件建构的页面的基础上。这个框架需要获取输出检验、本地化/国际化、状态/持续性管理、URL建构/参数同构等功能。

独一无二的类牵引机制使得开发者对源代码的改动需要重新部署和启动之后可立刻显出,极大地提高了研发的效率。组件的思想跨越Tapestry 5一直。以BeanEditForm组件为事例,用户只必须写出很少的代码就可以构建一个JavaBean中所有属性到一组组件的同构。

同时,在Web 2.0时代,Tapestry获取了老练的Ajax反对。由于JavaScript在浏览器运营时的不稳定性,框架对其展开了很好的隐蔽。此外,完备的检验机制,内置的国际化策略都使得Web研发轻而易举。

亚博网页版

在结构上,JNDI 由两部分构成:客户API 和服务提供商模块(Service Provider Interface,SPI),应用程序通过客户API 采访命名和目录服务;服务提供商模块用作可供厂商创立命名和目录服务的JNDI 构建。JNDI的结构如图1右图。 毕业论文网 http://www.lw54.com      EJB 开发者只必须告诉用于客户API 如何采访命名和目录服务才可,而不必须告诉JNDI SPI 的用于,因为不必须用于JNDI SPI 研发JNDI 构建产品,这就只不过通过JDBC 采访数据库,我们只必须告诉用于JDBC API 如何采访数据库,而不必须告诉数据库的JDBC 驱动如何构建。

用于客户API 采访EJB 3.0,只需撰写少量JNDI代码。   1.3.3应用于范围   EJB 3.0只专心于业务核心的研发,它并不关心客户端的类型及其用于的技术。既可以在Web 中调用EJB,也可以在J2SE 或J2ME中调用EJB。对于在Web中调用EJB,可以把代码必要写出在JSP中,但这种作法早已被舍弃,原因是Java代码与HTML代码互为混合,不但可读性劣,而且确保一起也很困难。

目前,在Web 研发上,我们可以引进第三方Web框架,如Struts,JSF,Spring MVC,Tapestry等。只不过用于EJB研发项目,对于自由选择Web框架不会变得不是那么最重要,因为日后即使替换出另一种框架,对于业务核心是会包含任何影响的。即使如此,我们自由选择Web 框架仍需谨慎,因为谁也想换来换去。目前,可引荐的Web框架是Struts 和JSF,前者是这几年的主流框架,用于的开发人员较为多,后者归属于JavaEE规范,未来将会沦为Web框架的主角。

其中一个样例如图2右图。 毕业论文网 http://www.lw54.com      (1)浏览器催促Test.jsp 文件。   (2)应用服务器的JSP 引擎编绎Test.jsp。

  (3)Test.jsp 通过JNDI 查询取得HelloWorld EJB 的存根对象,然后调用SayHello()方法,EJB 容器求救到方法调用。   (4)EJB 容器调用HelloWorld 实例的SayHello()方法。

     2项目实例      2.1 EJB 3末端:META-INF/persistence.xml 配置文件 关联所有的长久层类,企业级数据库可以利用HQL语法无缝将数据转换成对象。   <?xml version="1.0" encoding="UTF-8"?>   <persistence xmlns="http://java.sun.com/xml/ns/persistence">   <persistence-unit name="core">   <jta-data-source>java:/oildata</jta-data-source>    <class>com.jncom.core.ejb3.control.entity.UserHBM</class> 毕业论文网 http://www.lw54.com    <class>com.jncom.core.ejb3.control.entity.RoleHBM</class>   <class>com.jncom.core.ejb3.control.entity.OperationHBM</class> <exclude-unlisted-classes>true</exclude-unlisted-classes>   <properties>   <property name="hibernate.hbm2ddl.auto" value="update" />   <property name="hibernate.dialect"   value="org.hibernate.dialect.SQLServerDialect" />   <property name="hibernate.show_sql" value="false" />   </properties>   </persistence-unit>   </persistence>   2.2 EJB3末端:core/com/jncom/core/ejb3/base/ 长久层核心代码 毕业论文网 http://www.lw54.com   class BaseEntity   类型:模块   目的:通过构建 java.io.Serializable 模块以落成其序列化功能。主要读取DAO层中的类。   class BaseSvc   类型:抽象类 毕业论文网 http://www.lw54.|亚博手机登录。

本文来源:亚博网页版-www.foundorlost.com

admin

网站地图xml地图