JPetStore项目分析——分析一个典型J2EE应用web层的实现

基于MVC的jpetstore项目分析 jpetstore为博主 大二下 软件开发架构平台技术 的一项实验内容。 下面是基于MVC的jpetstore项目分析:jpetstore: github地址:https://github.com/SwordHarry/Jpetstore 使用环境:IntelliJ IDEA 开发架构:MVC 数据库连接:JDBC 一、准备工作 创建项目,选择为java web项目 输... 阅读详情

关于JpetStore(http://www.jfox.cn/jpetstore/  http://www.ibatis.com/jpetstore/jpetstore.html)

JPetStore是Sun公司开发的,在大众化的宠物商店程序基础上完全重写的,最早的基于J2EE平台的宠物商店网络应用服务程序。与其它的PetStore最本质的不同是JPetStore使用了类似Microsoft网络宠物商店的设计,但是在骨子确是完全不一样的网络服务构架,可以说这种构架完全体现了Java程序在网络应用方面的优势,故在此以它为例,从Java的底层实现方面来分析 J2EE在Web层的应用。

系统架构概览

JPetStore以一个小型宠物商店电子商务平台为原型向大家展示了一个带有简单数据库连接的J2EE Web层的应用,它集成了Web层应用领域所必须具备的要素,如:用户ID认证、商品信息查询、商品信息列表等等。总之,JPetStore是一个集客户购物,下订单,管理为一体的简单且典型的电子商务的例子。

当然,现实中的系统不会如此简单,大多数的系统要和多个数据源和其他的EIS(企业信息系统)相连通的,有着比较复杂的数据库系统的设计与连接。比如说,订单的提交可能是一个公司,信用卡服务可能另外的公司,运送又是一个公司,这样的话,数据系统的设计就很复杂(一般来说这就需要专门的DBA进行数据库的设计)。然而作为窥探J2EE的一个窗口,了解J2EE的运作,JPetStore足以胜任。

JPetStore划分成了多个模块,采取了松耦合的设计架构,允许存在多个数据源及EIS进行信息交互。它的结构相对简单,总共包括4个部分:

·         购物站点

·         管理。如:销售统计,手工接受/拒绝订单

·         订单处理

通过JMS接受/处理订单消息

用java mail来通知客户

通过JMS发订单给供应商

并修改订单数据库的相应信息

·         供应商

通过JMS接受订单

派送货物给用户

提供一个基于web的库存管理

维护库存数据库

系统架构解析

宠物商店的网站服务采用自上而下的构架,其最上层是由WAF(Web Application Framework)控制应用屏幕的跳转,进而产生视图,然后再调用商业组件来实现流程的处理(整体结构如图1所示)。

                   图1  JPet Store 总体框架结构

WAF提供众多Web应用所需的服务,其中包括请求过滤和分发、产生模板视图、可重用的Taglib,以及屏幕流程控制等等。应用组件封装了处理的逻辑,它们代表了商业的数据,并且可以对这些商业数据进行必要的操作;实体EJB代表了商业应用的实体,包括客户、地址、账目等;会话EJB提供了一些方法,如用户登陆、输出用户信息、管理购物车等;其它会话EJB提供了一些通用的方法,如产生唯一标示符等。传统的JavaBean组件演变成了值对象,在EJB组件和应用间进行传递数据,成功地处理了各个对象的封装,有效地降低了程序设计的难度。而XML文档类则用来处理订单信息。

jpetstore6宠物商店 改写至mybaits提供的示例程序,将Stripes实现改为maven管理的,mybatis+spring mvc项目,使用sitemesh装饰。提供完整的宠物商店,支持开发模式和应用模式,只需要修改web.xml文件中的spring.profiles.active属性为developer或production在数据源中配置的名称 立即下载

相关推荐

JPetStore项目分析

JPetStore项目分析——分析一个典型J2EE应用web层的实现 ,JPetStore是Sun公司开发的,在大众化的宠物商店程序基础上完全重写的,最早的基于J2EE平台的宠物商店网络应用服务程序。与其它的PetStore最本质的不同是JPetStore使用了类似Microsoft网络宠物商店的设计,但是在骨子确是完全不一样的网络服务构架,可以说这种构架完全体现了Java程序在网络应用方面的优势,故在此以它为例,从Java的底层实现方面来分析 J2EE在Web层的应用

MyBatis学习范例宠物商店jpetstore6

MyBatis学习范例宠物商店jpetstore6 内容为: mybatis-jpetstore-6.0.0-sources.jar mybatis-jpetstore-6.0.0.war 学习MyBatis一定要看的sample。

JPetStore项目源码、文档、数据库脚本

JPetStore划分成了多个模块,采取了松耦合的设计架构,允许存在多个数据源及EIS进行信息交互。它的结构相对简单,总共包括4个部分: • 购物站点 • 管理。如:销售统计,手工接受/拒绝订单 • 订单处理 通过JMS接受/处理订单消息 用java mail来通知客户 通过JMS发订单给供应商 并修改订单数据库的相应信息 • 供应商 通过JMS接受订单 派送货物给用户 提供一个基于web的库存管理 维护库存数据库

jpetstore案例分析 chm文档

关于经典案例jpetstore的深入、细致剖析 让你对应用spring开发j2ee有个全面了解 熟悉标准、常用的开发架构 chm文档格式

hpm6750evk2开发板(四)TCP回送(1000M网口)

再接下来我们修改代码,先找到配置网速的地方,肯定是在enet的初始化函数里面,我们一个函数一个函数找,也可以用单步调试一步一步找,结果发现是在enet_init函数里面调用的rtl8211_basic_mode_default_config函数配置网速的,我们把enet_phy_port_speed_100mbps改为enet_phy_port_speed_1000mbps,重新编译运行试试。首先我们复制一份lwip_tcpecho代码,重命名为lwip_tcpecho_RGMII,如下图所示。

Silas1750的博客 921

2022-2028年中国美容仪行业发展战略规划及投资机会预测报告

报告类型:产业研究 报告格式:电子版、纸介版 出品单位:智研咨询-产业信息网 美容仪是一种根据人体生理机能进行调节改善身体和面部的机器,它按照功能来说有美白、嫩肤、祛斑、祛皱、脱毛、减肥等多种,按照名称来说有超声波导入、光子嫩肤、高周波电疗、RF 电波拉皮、电子祛斑点痣、E 光永久脱毛嫩肤、贾法尼营养导入导出等。 智研咨询发布的《2022-2028年中国美容仪行业发展战略规划及投资机会预测报告》共十七章。首先介绍了中国美容仪行业市场发展环境、美容仪整体运行态势等,接着分析了中...

kt346的博客 468

基于STM32设计自动输液监测系统(241)

该系统集成了液位传感模块、光电传感器、电机模块、按键模块和OLED显示屏等多个功能模块,以实现全面的输液过程监控和控制。液位传感模块能够实时监测输液瓶中的液位,当液位到达限定值时,系统会自动控制步进电机夹紧输液管,并发出报警提醒,确保输液过程不会因液位过低而中断。

1343

在 SAP 资产模块跨 2024 和 2025 两个年度操作后,运行 AFAB 测试无数据,大概率是折旧已完全过账、跨期配置异常或资产数据异常等原因

SAP资产模块跨年度操作AFAB测试无数据的排查方案:首先检查折旧是否已完全计提,确认资产主数据价值;其次验证跨年度配置是否合规,包括全局配置、折旧范围和账期状态;然后重新执行AFAR折旧计算刷新数据;排查资产主数据异常或业务操作冲突;最后核对AFAB运行参数是否正确设置,包括会计年度、期间范围和运行模式等。

金牌架构师 866

Qt 【window udp 高频采集丢包问题】

使用Asio + 无锁队列或者环形缓存区方案可以解决 qt udp 在window平台高速采集 (128k)丢包问题。

weixin_45397344的博客 177

基于Python的车牌识别系统实现

本文将以基于Python的车牌识别系统实现为方向,介绍车牌识别技术的基本原理、常用算法和方法,并详细讲解如何利用Python语言实现一个完整的车牌识别系统。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 5万+

MFC C++ 中开发 PLC 通信客户端

OPC UA | 工业标准化通信 | `open62541`(开源OPC UA库)或 `UA-.NET` 封装 | 跨平台、安全可靠,支持复杂数据类型 |- 连接句柄(`modbus_t*`/`UA_Client*`/`TS7Client*`)不可跨线程共享,需为每个线程创建独立连接。Modbus 是工业常用协议,分 **RTU**(串口)和 **TCP**(以太网)两种模式,以下以 Modbus TCP 为例。s=Tag`),复杂类型需解析扩展对象。

寒寒豆豆软件公司的博客 139

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 200

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 对谈:WebWork vs. Struts
下一篇: 业界新闻
emag_java
博客等级 码龄22年 29粉丝 21原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值