HIS建设功能需求

HIS建设功能需求

1.1、门诊挂号系统

门诊专家排班管理

建立门诊咨询登记管理,病人来源地区管理 门诊患者挂号、退号以及档案管理

医保结算、新农合结算及门诊统筹管理 操作员结账及报表统计

1.2、门诊收费系统

门诊一卡通支持

收费划价、药品划价、挂账、结账及划价暂存 医保结算、新农合结算及门诊统筹管理 支持分科打票及合并打票模式

支持划价一体化管理及分科划价管理

操作员结账及报表统计分析、费用查询等

1.3、药房管理系统

门诊病人划价管理

支持处方审核

处方打印、服药单打印

病区领药、摆药及门诊发药管理

药品申领、退药及入出库调拨管理

支持按批次盘存及均价盘存管理及日报、年报管理 支持药品效期报警

支持库存不足报警

1.4、药库管理系统

药品采购、出库及药品入出库调拨管理,二级审核机制 支持按批次盘存及均价盘存管理及日报、年报管理 药品调价管理

支持供货商资质管理及审查

支持供货商经营范围管理及入出库审核

药品字典维护,厂家维护,供货商维护

支持日、月、季、年报及结存管理

支持药品效期报警

支持库存不足报警

1.5、住院管理系统

病人入出院管理

病区护士记账管理(费用上账、退费及医保明细上传) 入科、分床、转床及包床管理

费用自动记账管理(床位费及固定的诊疗费) 新生儿登记管理

入出院诊断管理

医保结算与新农合结算管理

支持病人日清单及各种分类汇总

操作员结账及报表统计分析、费用查询等

1.6、系统设置系统

支持各种基础数据字典的维护及设置

支持人员、科室、药品、收费项目、医护基础维护 支持人员权限管理

1.7、数据库后台管理

数据库管理(包括日常备份、更名、注册、用户授权等),SQL脚本执行

1.8、财务监管系统

收费项目字典维护及价格管理

收费员财务结账管理

票据使用监管

人、财务、物使用记录及统计分析

会计科目管理

抗生素使用统计

1.9、领导查询系统

人、财、物 使用记录及统计分析

支持各类型数据的统计及决策分析

病床使用率、接诊率、发病率、治愈率、处方权等

1.10、医保接口系统

身份识别、刷卡管理、费用明细上传、费用结算

项目对码、药品对码管理

结算单打印

医保支付(与医保局进行对账结算)

1.11、特殊门诊系统

门诊病人档案管理

就诊方案设计、诊断管理、处方管理

历史就诊记录管理

费用查询及统计

二、临床信息系统

2.1、一卡通管理系统

支持IC卡、磁卡、条码(卡)、二代居民身份证、银行卡等多种形式

建立病人基本信息和诊疗档案

自动识别复诊病人,支持查询历次就诊记录

支持预存款模式,支持门诊预交与住院预交分别管理,并实现预交金互转

支持在执行端(如检验、检查科室等)刷卡确认扣费

可作为自助服务的身份凭证

提供发卡、退卡、充值、挂失、密码设置/修改、补卡等功能,查询卡片状态

2.2、门诊分诊管理系统

可实时显示各诊室病人候诊、就诊状态

支持自动和手工分诊,可根据各诊室的闲忙状态进行分诊

支持特殊身份病人的优先就诊

提供病人信息编辑、换号、放弃就诊等功能

2.3、门急诊医生工作站系统

提供预约就诊、转诊、续诊、回诊管理等功能

自动获取病人基本信息如卡号、门诊号、姓名、性别、年龄、医保类别等

医生可查阅病人以往就诊记录,供诊疗参考

提供处方录入功能:包括药品名称、规格、价格、医保类别、用法用量等,并提供处方打印功能 提供与合理用药系统(PASS)的接口,在其支持下可进行处方配伍禁忌、不良反应、相互作用、剂量审核等合理用药审核

提供毒麻等特殊药品的代办人身份信息录入功能

支持中草药处方录入,提供配方、方剂等功能

医嘱自动关联各类申请单,并生成收费或记账信息,申请单格式可自定义

支持自动生成相关卫生材料费用

医生可根据需要设置个人常用医嘱

提供成套医嘱功能,可将处方内容制定为模板,并支持个人、科室、全院三级模板管理

提供报告功能,可直接查看检验、检查报告和皮试结果等,并可根据皮试结果限制药品医嘱的发送 实时显示医嘱执行状态、计费状态等信息

支持以医嘱方式申请住院,生成住院申请单并将病人信息发送到住院处

支持以ICD疾病编码下达诊断,并可根据诊断自动提示填写传染病报告卡

可自动生成门诊工作日志,提供针对医生工作量、费用等各种信息的统计报表

2.4、住院医生工作站系统

自动获取病人基本信息如性别、年龄、住院号、病区、床号、诊断、病情、护理、费用情况等 可查阅病人历次住院相关信息,供诊疗参考

提供医嘱下达、修改、删除、审核、停止、作废、回退、暂停、启用、重整等功能

提供与合理用药系统(PASS)的接口,在其支持下可进行处方配伍禁忌、不良反应、相互作用、剂量审核等合理用药审核

支持中草药处方录入,提供配方、方剂等功能

支持手术申请、会诊、转科、死亡、出院等特殊医嘱的处理

医嘱自动关联各类申请单,并生成收费或记账信息,申请单格式可自定义

支持手工调整医嘱排列顺序

支持自动生成相关卫生材料费用

医生可根据需要设置个人常用医嘱

提供成套医嘱功能,可将处方内容制定为模板,并支持个人、科室、全院三级模板管理

提供报告功能,可直接查看检验、检查报告和皮试结果等,并可根据皮试结果限制药品医嘱的发送 实时显示医嘱执行状态、计费状态等信息

提供医嘱复制功能,可将相同或相似病例的医嘱复制为当前病人医嘱。

产科支持产妇和新生儿医嘱分别管理和计费

支持以ICD疾病编码下达诊断,并可根据诊断自动提示填写传染病报告卡

支持医疗小组管理

2.5、病区护士工作站系统

提供床位管理功能,支持包房、转床、换床、加床等操作

提供医嘱代开、校对、发送执行、补费、销账、计价调整、超期发送医嘱收回等功能,可打印各类医嘱单据,支持续打印功能

提供床位卡显示(床号、住院号、姓名、性别、年龄、诊断、病情、护理等级、欠费状态等) 可查阅病人历次住院相关信息,供诊疗参考

提供护理记录和三测单功能,支持集中批量录入

支持皮试结果记录、查询

支持病区摆药管理模式,提供摆药查询等功能

提供病区检验标本采集管理功能

产科支持新生儿登记

提供住院费用清单、催款单等查询打印

支持医疗小组管理

2.6、电子病历系统

自动获取病人基本信息,并能进行编辑

提供各类住院病历文件(含知情同意书)模板,如入院记录、首次病程、日常病程记录、上级医生查房记录、术前讨论、术前小结、手术记录、术后病程记录、诊疗操作记录、会诊记录、交班记录、死亡记录、出院小结等,支持全文和段落、词句等模板,支持快速结构化录入,并可由医生进行个性化修改

模板可按全院、科室和个人进行分级管理

提供对模板使用的规则管理功能,如性别、病情、婚姻状况等条件限制

支持对病历的修改痕迹保留功能,并能对多个修改版本分别进行记录

支持在病历中加入图片、表格、附件文件等多种格式,提供特殊标记输入功能,如齿标、月经史等 支持直接从LIS系统提取检验项目的结果

支持采用ICD疾病编码下达诊断

支持电子签名,以确保电子病历的有效性、合法性

提供打印功能,支持整页打印和续打

可自动提醒医生按规定时间和内容完成病历的书写

支持按病人信息、病历内容等条件检索查阅病历文件

可自定义归档时间,对电子病历进行归档

2.7、病历质量控制与评分系统

提供评分标准自定义维护功能,可设置病案审查的分类及审查项目

提供对电子病历的抽查、归档、封存等功能

支持管理人员在线抽查病历,可根据质控规则自动生成审查意见,并支持与医生之间的双向信息反馈 可按规则对病历进行自动或人工评分

可查阅任意指定条件的病历内容,并提供各种质量统计报表

2.8、临床路径管理系统

提供临床路径表单定制功能,支持路径及具体内容的增删、审批以及版本管理等功能

支持导出/导入路径表单

支持根据诊断自动提示进入临床路径

根据路径表单自动生成每天的路径项目,支持路径项目批量执行

支持对路径的进入、阶段情况进行评估,以确认是否可以进入下一阶段

支持住院中途进入路径,可根据病人实际病情对路径进行必要的调整与变更

支持分支路径和路径跳转,以及对路径阶段的提前或延后,并跟踪原因

可增加路径外项目并记录原因

支持变异退出身份验证/权限控制

提供统计分析功能(入径率、变动分析等),分析变异原因

支持会诊管理,可共享会诊病人的路径信息

支持随时查阅病人费用情况,并对费用进行评估

2.9、病案首页

根据卫生部20xx年新病案首页管理要求、及四川省卫生厅20xx年相关要求,满足我院现在病案管理系统新病案首页管理需要。

三、医技信息系统

3.1、实验室LIS系统

自动获取医生工作站的检验申请与病人信息,可共享病人的病历、费用、医嘱等信息

可对标本进行单个和批量采集、送检,支持对标本进行条码管理

提供标本的自动核收和合并、拆分功能

自动生成检验结果报告,并与医生工作站共享

提供既往检验结果查询和历次对比功能

提供检验项目正常值范围参考,对偏低、偏高和警示值进行提醒

对检验报告进行审核并验证审核者身份,检验的数据经过审核后方可生效

提供查询/统计功能,包括项目工作量、仪器工作量、申请统计等

提供检验质控管理,支持自定义质控规则,自动输出质控图

提供对检验仪器、项目、抗生素、细菌、报告模板等基础数据进行管理的功能

3.2、医学影像PACS系统

自动获取医生工作站的检查申请与病人信息,可共享病人的病历、费用、医嘱等信息

可接收DICOM和非DICOM格式的影像数据

提供基础图像处理功能:包括缩放、穿梭、漫游、裁剪、镜像、反相、旋转、滤波、锐化、伪彩、电影播放、窗宽窗位调节、定位线等;支持ROI值、长度、角度、面积等数据的测量,以及标注等功能

提供高级图像处理功能:包括矢冠状重建、三维鼠标、DSA数字减影等

支持JPG、BMP、TIFF等多种格式存储图像,支持将图像保存为图文报告

可同时调阅病人不同时期、不同病人的影像及报告进行对比

支持用户自定义窗宽窗位值、显示文字的大小、放大镜的放大比例等参数

提供报告功能,用户可以方便灵活的定义模板,生成检查报告,支持多级医生审核

提供查询功能,支持姓名、影像号等多种形式的组合查询

提供统计功能,可以统计工作量、费用信息等

支持自定义胶片打印

支持检查补费、销账等操作

3.3、医技工作站系统

提供执行登记、取消、查询等基本功能

支持执行操作的批处理

支持项目执行过程中的补费

3.4、门诊注射输液系统

支持输液病人排队管理,可同步显示到大屏幕,提供语音呼叫功能

提供座位管理功能及相应的费用管理

提供各类单据的打印功能

支持病人寄存药品

提供输液监控功能,可计算输液时间和进度

3.5、手术安排与费用登记系统

申请与安排功能,可管理包括手术名称、时间、手术医生、输血血型、输血量、术前术后诊断、切口等信息

支持手术/麻醉方案管理,可指定手术用药、材料、用血等

提供手术费用管理功能

提供术后医嘱管理功能

提供术前讨论和术后总结信息管理功能

支持麻醉记录填写,包括麻醉方法、麻醉医生、麻醉效果、记录事项等

提供器械清点记录功能

提供手术复苏记录功能

3.6、体检管理系统

提供个人、团体基本信息维护功能

支持团队体检预交和结算管理

可根据行业等不同特点设置相应报告格式、套餐、调查问卷等

支持体检套餐管理,可对套餐项目组成、费用折扣等进行管理

提供个人和团队预约管理功能,可选择体检项目(套餐)、日期等,支持加、减项

提供团体名单的导入和团体的批量预约功能

提供体检报到功能,打印体检指引单,支持条码管理

支持通过门诊收费系统结算体检费用

支持共享LIS、PACS系统数据

支持分科录入体检结果,支持专科检查自定义报告内容及图片格式,支持异常结果显示提醒;总检医生能够看到各分检科室的体检结果、结论及异常项目,并书写相关的总检报告。

支持多种特殊格式要求的报告定制,能满足团检报告的相关数据统计分析、报告处理及体检历史指标对比分析功能

对重大疾病的受检人员可进行总检前的提醒

提供针对特殊、有害职业的体检申报功能

提供随访管理功能

3.7、检验自助报告打印系统

支持使用就诊卡、医保卡、身份证等各种介质进行身份识别

自动检索病人的检验项目并提供打印服务

3.8、排队叫号系统(缴费、取药、医技)

支持通过护士分诊台或医技站呼叫

支持按医技执行科室或执行间进行呼叫

提供对排队病人人的直接呼叫,顺序呼叫,广播,跳过,优先等功能

支持自动分配或指定处方的发药窗口

支持外接大屏幕显示和语音呼叫设备

支持自定义设置药品取药窗口及各自的上下班状态等

支持诊断后再回诊排队呼叫

四、药学管理系统

4.1、合理用药监测系统

提供用药审查功能,包括配伍、剂量、过敏史、禁忌症、副作用、相互作用、重复用药、特殊人群、给药途径等功能,并以直观的方式对医生进行提示

提供查询功能,可查询药物临床应用信息参考、说明书、常用计算公式,抗菌药物临床应用指导原则等

可按警示级别统计问题医嘱

合理用药系统与医院现有HIS系统为“嵌入式”,即临床医生下达处方后,系统能自动对药品处方进行配伍禁忌的提示。

4.2、抗菌药物分级管理系统

提供抗菌药物的等级信息维护,支持抗菌药物目录的分级查阅和维护

支持用药申请、审核流程,支持审核操作的电子签名,支持医院管理部门集中审核或分科室审核 护士站、医生站可查看审核状态和审核结果

支持越级使用的用量、天数限制,以及用药理由登记控制

支持在门诊处方中限制使用特殊使用级抗菌药物

支持对自备药限制使用抗菌药物

提供用药目的登记,支持三级综合医院质控指标上报

提供越级使用抗菌药品的明细和汇总统计表

4.3、处方点评系统

对处方、医嘱的实时在线审查、点评功能。

对评审处方可按照开单医生、病人、病区、病种随机抽查。

按照卫生部相关要求设定28条处方点评标准描述,支持自定义增加评论。

五、行政后勤系统

5.1、办公自动化系统

与HIS系统无缝连接,可以直接从HIS抽取数据,实时展现基本经营信息(如:门诊病人数、急诊病人数、在院病人数、新入院病人数、出院病人数、今日总收入指标等)。

支持公文的无纸化管理,上、下行文的收发、批阅等流转处理。

支持日程表及会议安排管理。

支持项目计划、常规任务管理。

支持内部单人对话、多人对话等即时消息通讯服务。

支持“无处不在的讨论”,可以就资源、计划、任务等任意内容组织相关人员参与讨论。

文档知识库管理:不仅可以管理医院内部人员的论文等文档,还可以收集补充外部文档,形成医院自己的知识文档库。

内部邮件系统,不仅可以系统实现内部邮件互发,同时还支持配置多个外部帐号。

5.2、导诊自助触摸查询系统

可自定义发布各类信息,包括医院介绍、专家介绍、就诊指南、专家排班、药品及诊疗项目价格、健康咨询及建议等,并随时进行维护。

5.3、院感管理系统

对病人病例的感染、诊断、手术、药敏及抗菌药物的使用等情况进行登记、查询

可按天录入各种类别(如新生儿日报和ICU日报等)的数据

提供对医院的指定的场所的指定样品进行消毒等情况进行登记及查询

提供对临床医务人员发生职业暴露情况进行相关的登记或查询

5.4、设备管理系统

可根据各部门的申购单自动生成采购计划

提供设备卡片管理,支持自定义卡片格式

提供设备入库、出库、调拨、领用、盘点、退库、保养、检查、维修、变动、下帐等管理功能 提供设备折旧管理,支持灵活的设备折旧算法

提供对设备总帐、明细帐及各类使用、维修数据的统计分析功能

5.5、物资管理系统

可根据各部门的申购单自动生成采购计划

提供物资的目录管理,设置包装单位、存储条件、灭菌效期、是否分批等属性

支持按不同方法对物资进行核算,包括先进先出法、移动平均法等

提供物资外购、自制、其他入库、移库、领用、盘点、发放管理等功能

支持对在用物资进行权属变更、维修、报废、分摊等管理

六、电子签名(规划)

通过电子签名第三方(CA认证中心)时间戳,完成医疗行为的电子签名认证,无需打印纸质病历,极大的节约纸张,是医院临床电子病历发展的趋势。20xx年卫生部通过了首批电子签名CA商家,包括北京、重庆、广西等地区的CA认证中心通过了卫生部电子签名认可,四川CA认证不在认证行业,因此四川CA无法在川内开展医院电子签名认证活动,目前省内医院均在与重庆、北京等地CA认证中心交涉异地电子签名认证,同时四川省高级人民法院尚未出台川内电子签名的司法解释。本次电子签名仅作为规划,暂不考虑实现。

 

第二篇:Spring2.5、Struts2、Ibatis(SSI)开发框架搭建

Spring2.5、Struts2、Ibatis开发框架搭建

一、框架下载

1.1 Struts2框架

Struts2框架发展于WebWork,现在捐献给了Apache开源组织,最新版本的Struts2框架可以从位于Apache官方网站的Struts2项目中获取,Struts2框架的项目主页地址为:/ ,下载页面地址为:

,打开下载地址以后自己选择最新发布的版本即可,新手的话下载Full Distribution的版本,例如/download.cgi#struts2014中的struts-2.0.14-full.zip。 为了让struts2能够支持json格式的返回数据,还需要下载json插件,下载地址为 ,下载文件为 文件。

1.2 Spring2.5 框架

Spring框架的官方网站地址:,下载页面为:,打开下载页面以后选择Get the latest Spring releases here中的发行包去下载使用,注意Spring官方网站中包含的框架有很多,包括流程处理、安全、Web服务等很多种框架,我们需要下载的 框架是Spring FrameWork 的某个版本,不是其它的那些框架。

1.3 Ibatis框架

iBATIS框架的主页是,在打开的网站界面中选择 选择左边的Get software中的for java连接,在打开的界面中选择下载连接。

1.4 其它(数据库缓冲池框架等)

如果需要使用Ms Sql Server数据库的话,还需要在项目中加入jtds的JDBC驱动程序,下载地址/,找到download连接,按提示信息下载即可。下载DBCP数据库缓冲池框架,下载地址为,下载最新版本即可,因为DBCP框架是apache开源软件组织的众多框架中的一部分,要让DBCP工作的话,还需要common-pool框架,自行到apache官方网站下载。

二、向项目中加入Spring Struts iBATIS框架

2.1 准备工作

将下载的三个框架分别解压缩。

新建一个Web Project。

2.2 向项目中加入Spring框架

将Spring解压缩以后

spring-framework-2.5.6-with-dependencies\spring-framework-2.5.6\dist目录中的spring.jar复制到Web项目的WEB-INF/lib目录中。

复制

spring-framework-2.5.6-with-dependencies\spring-framework-2.5.6\lib\log4j中的log4j相关的jar文件到项目中WEB-INF/lib目录中。

打开WEB项目中的WEB-INF目录中的web.xml文件,添加及结合项目实际情况配置以下内容

<!-- 以为是应用程序名称 -->

<display-name>JI</display-name> <!-- 以下是应用程序描述说明性文字 --> <description>Job Integration</description> <!-- 上下文参数,用于log4j以及spring中使用 --> <context-param> <!-- 应用程序上下文参数,指定log4j日志框架使用的配置参数文<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> <param-name>webAppRootKey</param-name> <param-value>ji.root</param-value> </context-param> 件位置 --> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> <!-- 应用程序上下文参数,指定spring配置文件位置 -->

在这里写Spring参数配置文件的路径

例如 /WEB-INF/spring/applicationContext.xml

</param-value>

</context-param> <!-- 监听器,用于初始化log4j日志框架的 --> <listener>

<listener-class>org.springframework.web.context.ContextLoader</listener> 打开解压缩以后的Struts2框架目录,找到\struts-版本-all\struts-

复制jsonplugin-0.31.jar 到项目的WEB-INF/lib目录中。

打开WEB项目中的WEB-INF/web.xml文件,添加以下内容:

<!-- 过滤器,struts2使用的,用于销毁某些不再使用的对象等--> Listener</listener-class> 2.3 向项目中添加Struts2框架 版本\lib目录,复制*.jar文件到WEB项目的WEB-INF/lib目录中。 <listener-class>org.springframework.web.util.Log4jConfigListe</listener> <!-- 监听器,用于初始化spring框架 --> <listener> ner</listener-class>

<filter>

<filter-name>struts-cleanup</filter-name>

<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>

</filter>

<!--过滤器,struts2使用的 -->

<filter>

<filter-name>struts</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<!-- 以下是struts2使用的用于清除或销毁某些对象的过滤器,要保证在struts过滤器映射之前配置这一项 -->

<filter-mapping>

<filter-name>struts-cleanup</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- struts2用于的过滤器映射 -->

<filter-mapping>

<filter-name>struts</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

找到项目的源程序目录,一般在Eclipse开发工具中都是src目录,添加以下几个文件(注意大小写),struts.properties,struts.xml,globalMessages.properties ,其中

struts.properties文件中的内容为:

struts.custom.i18n.resources=globalMessages

struts.objectFactory=spring

struts.objectFactory.spring.autoWire=type

struts.ui.theme=simple

struts.locale =zh_CN

struts.i18n.encoding=UTF-8

struts.configuration.xml.reload=true

struts.multipart.parser=jakarta

struts.multipart.maxSize=10000000

struts.devMode=false

globalMessages.properties文件中的内容为:

SMSPageTitle=\u5b89\u5fbd\u7701\u8840\u6db2\u4fe1\u606f\u77ed\u4fe1\u5e73\u53f0

login.error=\u60a8\u8f93\u5165\u7684\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef\uff01

userId.required=\u60a8\u7684\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01\uff01

passward.required=\u60a8\u7684\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01\uff01

datebase.error=\u6570\u636e\u5e93\u64cd\u4f5c\u9519\u8bef\uff01\uff01\uff01

validCode_error=\u9a8c\u8bc1\u7801\u9519\u8bef\uff01\uff01 retistSdk.error=\u6ce8\u518cSDK\u5931\u8d25\uff01\u8bf7\u68c0\u67e5\u5e8f\u5217\u53f7\u548c\u5bc6\u7801\uff01\uff01

retistSdk.success=\u8f6f\u4ef6SDK\u6ce8\u518c\u6210\u529f\uff01\uff01\uff01

logoutSdk.success=\u60a8\u5df2\u6210\u529f\u6ce8\u9500SDK\uff01\uff01

logoutSdk.error=\u6ce8\u9500SDK\u5931\u8d25\uff0c\u68c0\u67e5\u7f51\u7edc\u8fde\u63a5\uff01\uff01\uff01

chargUp.error=\u5145\u503c\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5\u5361\u53f7\u548c\u5bc6\u7801\uff01\uff01

sdkNotReg=\u7cfb\u7edfSDK\u6ca1\u6709\u6ce8\u518c\uff01\uff01\uff01\uff01

struts.messages.error.uploading=\u6587\u4ef6\u65e0\u6cd5\u6b63\u5e38\u4e0a\u4f20

struts.messages.error.file.too.large=\u6587\u4ef6\u5927\u5c0f\u8d85\u8fc7\u6700\u5927\u5141\u8bb8\u503c

struts.messages.error.content.type.not.allowed=\u6587\u4ef6\u7c7b\u578b\u4e0d\u5728\u4e0a\u4f20\u6587\u4ef6\u5141\u8bb8\u7c7b\u578b\u4e2d

最后一个文件是struts.xml中的内容,这个文件是struts的参数配置文件,参考配置内容:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts

Configuration 2.0//EN"

"/dtds/struts-2.0.dtd"> <struts>

<constant name="struts.i18n.encoding" <package name="login" extends="struts-default"> <action name="login" method="login"> <result name="success">/dev_test/login.jsp</result> value="UTF-8"></constant> class="edu.xw.ji.action.LoginAction" </action> </package> <package name="ji_common" extends="json-default"> <interceptors> <interceptor-stack name="myDefaultStack"> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <default-interceptor-ref

name="myDefaultStack"></default-interceptor-ref>

<global-results> <result <result name="warn">/pages/warnMessage.jsp</result> name="error">/pages/errorMessage.jsp</result> </global-results> </package> <include file="edu/xw/ji/action/dict/struts2_dict.xml" /> </struts>

注意上面的struts.xml配置文件中有两个示例package,名称为login的package是从struts-default包继承下来的,不能够实现json格式的action返回,后面的ji_common是从json-default包继承下来的,以后在项目中所有程序开发人员自己编写的action中使用到json格式的返回结果时可以从ji_common包继承下来。

2.4 向项目中添加iBATIS框架 找到解压缩的iBATIS压缩包中的ibatis-2.3.4.726\lib目录,复制里面的.jar文件到项目中的WEB-INF/lib目录中。 2.5 添加数据库缓冲池框架 复制DBCP缓冲池框架中的commons-dbcp-x.x.x.jar文件到项目中WEB-INF/lib目录中去,复制DBCP框架工作时需要使用的common-pool相关的jar文件到项目中的WEB-INF/lib目录中去,DBCP在项目中是被配置到spring当中去使用,所以接下来的一系列工作都与spring的配置有关。

三、整合Spring2.5,Struts2,iBATIS,DBCP,Log4j

3.1 what’s the point?

为什么要“整合”这些框架呢?在程序代码中由程序员负责处理与控制一切不是很好吗?要这么多的框架搭配在一起工作有什么好处呢?答案只有一个,“省事”,节省程序员开发程序的时间。

整合这些框架的关键一点就是Spring,Spring是所有这些框架在一起工作的粘合剂,整合的工作重心就是将web MVC框架、ORM框架、数据库缓冲池框架、日志框架等全部交给Spring管理,由Spring调配使用这些框架综合在一起工作。

3.2 Spring如何让Web项目加载? 在第2.2小节中的配置参数中有一个listener是用来让我们的web项目在启动时就可以自动加载Spring框架及其参数配置文件的,即下面的这一行配置参数。

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener> 配置了Spring自动加载以后,在web项目的WEB-INF/web.xml中应该3.3 Spring的参数配置文件如何被自动加载上? 配置Spring参数文件的加载位置,即在2.2小节中需要配置的

<!-- 应用程序上下文参数,指定spring配置文件位置 -->

<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/applicationContext.xml

/WEB-INF/spring/ibatis_dao.xml

/WEB-INF/spring/struts_action.xml</param-value>

</context-param>

在<param-value>后面配置Spring参数文件的路径,有多个Spring的参数配置文件存在时,各个参数文件之间用空格分隔开。

3.4 如何让Spring管理Struts2? 要让Spring管理Struts2的action bean的创建等工作,需要在项目的src目录中的struts.properties文件中指定

struts.objectFactory=spring

struts.objectFactory.spring.autoWire=type

即2.3 小节配置参数中包含的这两行。 3.5 如何让Spring管理数据库缓冲池? DBCP或者C3p0等数据库缓冲池可以在Spring的参数配置文件当中去配置使用,例如在项目中配置DBCP数据库缓冲池的话可以指定以下格式的参数配置:

<bean id="dataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="initialSize" value="4" /> <property name="maxActive" value="20" /> <property name="testWhileIdle" value="true" /> <property name="validationQuery" value="select count(0) from t_db_history where 1=2" /> <property name="testOnBorrow" value="true" />

</bean> 上面各个参数值中有的使用的是$符号加{}的形式进行配置的,这种配置格<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigure <property name="locations"> <list> <value>WEB-INF/jdbc.properties</value> </list> 式需要在Spring当中配置一个能够加载.propertis文件的bean,如以下格式: r"> </property> </bean> 上面配置参数中的list元素后面跟随.properties文件列表。

当然,如果不想把参数文件写在Spring以外,也可以在配置DBCP的时候直接将连接数据库URL,用户,密码等等参数写死在Spring当中也是可以的。

3.6 如果整合iBATIS框架? iBATIS框架要工作的话,需要指定一个全局的iBATIS参数配置文件,即在Spring中需要告诉iBATIS框架,你工作时需要使用的参数文件在哪里可以找到,另外,Spring框架对常见的ORM框架等等都进行了封装,所以要在Spring当中配置iBATIS框架的话,实际上要配置的类是Spring框架当中的某个类,如下:

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"> <property name="configLocations" value="WEB-INF/sql-map-config.xml" /> <property name="dataSource" ref="dataSource" /> </bean> 上面的配置参数中的value="WEB-INF/sql-map-config.xml"即是用来告诉以上配置参数中的property name="dataSource" ref="dataSource"即是用来告3.7 如何使用Spring 2.5 提供的AutoWired功能? 在Spring的参数配置文件中加入如下一行配置参数即可: <context:annotation-config /> 3.8 如何通过数据库的表自动生成实体类以及参数配置文件等等? 需要使用iBATIS官方网站提供的iBATOR,在Eclipse当中可以安装该iBATIS框架它要使用的配置参数文件存放在哪个位置。 诉iBATIS框架,它要使用的数据源是在3.5小节中配置的数据库缓冲池。

插件,Eclipse当中安装插件的方法这里不做描述。

安装好iBATOR插件以后,用Eclipse的新建功能向项目中加入一个用于自动生成iBATIS实体类等的参数配置文件,在该文件当中指定本机上的JDBC数据驱动以及连接数据库的参数等等,配置好要生成的实体类,DAO,SQL映射文件的存放路径,如果一切正常,配置完成以后即可自动根据数据库当中的表结构来产生实体类以及DAO等等。

3.9 iBATOR生成的实体类以及DAO等如何应用? 第一步需要先将生成的SQL映射文件添加到iBATIS的全局参数配置文件当中去,具体是哪一个文件是iBATIS框架的参数配置文件呢?3.6小节中的<property name="configLocations" value="WEB-INF/sql-map-config.xml" />这一行配置的是哪一个文件,那么那个文件就是iBATIS框架的全局配置参数文件。

向里面加入某一个实体类对应的SQL映射文件的配置参数是如下格式: <sqlMap resource="edu/xw/ji/sqlmaps/t_db_history_SqlMap.xml" /> 3.10 在Spring当中如何配置iBATOR自动生成的DAO类呢? iBATOR代码生成工具自动生成的DAO类的实现类有些特殊,即DAO实现类在实例化的时候需要传入一个构造参数,在3.6小节当中配置的那个类的数据类型就是这个构造函数要传入的参数数据类型,那么在Spring当中配置DAO实例时告诉它构造函数的参数是什么就可以了,如下:

<bean id="sys_job_type_dao" class="edu.xw.ji.dao.SysJobTypeDAOImpl"> <constructor-arg> <ref bean="sqlMapClient" /> </constructor-arg> </bean> 3.11 Spring如何管理Struts2的Action类? 要让Struts2的Action类与Spring一起工作,需要先在Spring当中定义bean,即将Struts2的Action当成普通的bean定义在Spring当中,唯一需要注意的地方是要在Spring的配置参数当中加一句scope="prototype"。

然后在Struts2的参数配置文件中再去使用这个在Spring当中定义好的bean id就行了。