bos物流项目

系统:本系统是属于b/5架构面设计开发的是某个物流公司的一个后台管理系统,属于物流公司整个erp平台的一个组成部分。本系统是此物流公司的一个二期改造项目,原来

此公司存在一个c/5架构的系统,后来业务不断扩大,所以公司决定进行改造,该系统主要有基础设计,取景,中专,路曲,控表及大部分组成。

项目周期:整个项目周期大概是1年的时间,其中编码段大概要4个月,团队人数20多个人。

技术架构:

本系统采用ssh框构开发,web层使用struts2,持久层采用hibernate5,spring管理web层的actien,业务层的sevice,持久层的dao。前台使用jqueryeasyuiy。

spring的作用:

spring管理actien,sevice,dao,action采用多列的管理方式。对sevice和dao采用单列方式。

本系统采用声明式事物控制方式对sevice进行事务控制。spring和hibernate整合后,spring在sevice方法开发执行前创建session,开启事务,方法结束提交事务,关闭

sevice。

spring和shiro进行整合开发,spring管理shiro框架的secuntyManager,reaim等bean,另外spring通过cjlib方式生成action的代理对象,实现权限控制。

spring和cxf框架整合调用开发。

hibernate的使用:

本系统使用hibernate的qbc和hql两种开发方式。

本系统对dao层进行封装,采用泛型basedao,在spring定义bean的配置中通过basedao的构造方法动态或的操作实体类型,这样做的好处是需要在系统定义一个basedao即可,根据模型的不同在spring的配置文件定义不同的·dao。

如果在开发中遇到延迟问题,可以通过sppring的opensessioninviewfilter过滤器解决这个问题,如果还不够,这时就需要使用立即加载策略。

struts怎样用?

本系统采用摸型驱动方式编写action,视图层采用jsp。

开发中封装baseAction,采用泛型由子类指定具体的模型对象类型。

struts中的所有action对象都交由spning创建。

这个系统ui使用jqueryeasyui,及jqwery裤。

布局使用layout,标签窗口采用tabs,菜单使用accordin,数据列表采用datagrid,

弹出窗口window

消息提示:messager

菜单:menubotton

下拉框:combcbo

使用ApacheShiro框架完成认证和授权,shiro框架中的对象创建由spring负责创建,

shiro框架共提供了4中权限控制方式,本系统中使用到前3种方式:

1、URL拦截权限控制,通过shiro框架提供的过滤器实现

2、方法注解权限控制,通过为Action创建代理对象实现

3、页面标签权限控制,通过shiro框架提供的标签实现

4、代码级别权限控制,通过在程序中调用shiro的API完成权限控制

如何使用shiro:

1、自定义了realm,从数据库查询用户密码和用户的权限信息,为了避免多次查询realm使用ehcache缓存。

2、使用shiro主要是要在shiroFilter中配置过虑规则,哪些可以匿名访问,哪些必须要认证。

使用ApachePOI组件完成导入和导出Excel

jxl也可以Excel

做接口:

采用CXF框架实现远程调用,由于接口同步数量不大,hessian采用框架定义的二进行协议传送数据,速度很快,本系统采用CXF.

在开发时将服务端的接口拷贝至本系统,在sprig的配置文件中配置代理接口,在本系统的service中直接注入调用。

对于大数据传输我们可以直接使用socket的方式传输。

对于一些公开的接口(不同公司的系统之间的调用),大多采用http的方式定义接口,对于服务端现在流行使用rest方式,对于客户端我们一般使用httpclient调用服务端。

还有一些接口采用webservice(soap协议),这个我们使用过cxf这个框架开发。

axis

hessian

dubbo

这个项目还可能遇见这些问题?

系统维护的流程:

如果系统问题严重的话需要立即解决:1讨论出修改方式;2开发人员进行修改;3修改完成提交测试人员4测试完成使用升级包升级系统。

如果系统问题不严重可以下个版本解决。

遇到的问题很多,有技术方面的,也有非技术方面的:

1、开发工程师的技术水平参差不齐,有些技术稍差的工程师经常不能按时完成项目经理分配的任务,还需要其他人帮忙,导致项目进度缓慢

2、和测试人员沟通困难,有些时候测试人员会提交一些bug,但在我们开发看来根本就不是bug

3、人员不稳定,如果有人离职,新招进来的人不能立即上手,导致项目推进缓慢

如何和测试人员配合工作的?

每天定时登录项目管理平台,查看有没有自己名下bug,如果有根据测试人员描述的测试场景进行测试,如果存在bug会及时修改,修改完成将bug提交。如果根据测试人员描述的测试场景进行测试,bug不存在,和测试人员沟通。

如果遇到bug来回驳回,我去现场和测试人员进行沟通,针对测试场景看看双方是否一致。

点击打开链接

猜你喜欢

转载自blog.csdn.net/A2307812087/article/details/78767664