BOS物流项目问题汇总

请描述一下这个系 统?

从两个方面回答,

第一个方面:系统背景及系统概述

本系统是基于B/S架构而设计开发的,是某物流公司的一个后台管理系统,属于物流公司整个ERP平台的一个组成部分。本系统是此物流公司的一个二期改造项目,原来此公司存在一个C/S架构的系统,后来业务不断扩大,所以公司决定进行改造。该系统主要有基础设置、取派、中转、路由、报表几大部分组成。

第二个方面:系统包括的业务模块及主业务流程

本系统包括了:基础设置、取派、中转、路由、报表几大部分组成。

扩展问题:

这个系统你做了哪些模块?

负责系统管理模块、基础设置模块的开发。其他模块没有接触到,所以不太清楚。

项目周期是多长?团队人数多少?

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

说说系统的架构?spring的作用?

功能架构:

本系统是基于B/S架构而设计开发的,是某物流公司的一个后台管理系统,属于物流公司整个ERP平台的一个组成部分。本系统是此物流公司的一个二期改造项目,原来此公司存在一个C/S架构的系统,后来业务不断扩大,所以公司决定进行改造。该系统主要有基础设置、取派、中转、路由、报表几大部分组成。

技术架构:

本系统采用ssh框架开发(struts2.3.24、spring4.2、hibernate5.0.7),web层使用struts2、持久层采用hibernate5,spring管理web层 的action、业务层的service、持久层的dao。前台使用jQuery EasyUI进行页面展示。

spring的作用:

spring管理web层 的action、业务层的service、持久层的dao,对struts的action采用多例的方式管理,对service和dao采用单例方式。

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

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

spring和CXF框架整合开发远程调用接口。

项目中如何进行事务管理的?

这个项目的事务管理是通过spring的声明式事务进行管理的,具体做法是使用spring提供的事务注解,为Service创建代理对象,由代理对象进行事务控制。

这个系统hibernate是怎么用的?或这个系统持久层如何实现的? 

本系统使用hibernate5.0.7 版本。

本系统使用hibernate的QBC和HQL两种方式开发。使用hibernate可以大大简化持久层开发。

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

在开发中是否遇到hibernate延迟加载问题?怎么解决的?

在开发中遇到延迟加载问题了,通过spring的OpenSessionInViewFilter过滤器解决这个问题。但这个还不够,比如在页面中使用easyUI的datagrid展示数据,这时在服务端查询到数据后,需要转为json返回给datagrid,这时如果查询到的对象内部引用了关联对象,而这个关联对象是延迟加载的,就无法转为json,这时就需要使用立即加载策略。

在你们开发过程中是否使用到了hibernate自动建表功能?

没有使用到,我们所有的数据表都是通过sql自己创建的。

这个项目中是否使用到了hibernate的二级缓存?

没有使用到二级缓存,因为虽然缓存可以起到优化的作用,但我们项目要求的都是实时数据,所以没有使用缓存。

ehcache

这个系统struts是怎么用的? 

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

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

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

10 这个项目中是否用到struts2的值栈了?

没有用到值栈,因为整个项目页面列表数据展示,都是基于easyUI中datagrid展示的,发送的都是ajax请求,也就是说在服务端都是返回json数据展示到datagrid中,所以不需要值栈。

11 这个系统UI使用什么框架?都用到jquery easy ui的哪些组件?

系统UI使用Jquery easy UI,及jquery库。

系统框架布局使用layout,系统标签窗口采用tabs,系统菜单使用方accordion,数据列表采用datagrid,

弹出窗口 window

消息提示:messager

菜单:menubutton

下拉框:combobox

12 这个系统的认证和授权是怎么实现的?如何使用shiro的? 

本系统使用了Apache Shiro框架完成认证和授权。shiro框架中的对象创建由spring负责创建。

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

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

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

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

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

你们如何使用shiro?

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

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

认证:applicationcode – subject(login)---securityManger—realm

授权:在realm中获得授权信息

原因:只要是要进行权限校验,每次请求都要经过realm授权的方法,授权方法每次都要查询数据库,效率低。

如果将第一次查询到权限放入缓存中,效率可以搞。Shiro已经跟ehcache整合好,我们只需要进行配置。

13 系统中有导入、导出功能吗?怎么实现的? 

系统有导入导出功能,对区域数据实现导入和分区数据实现导出。

使用Apache POI组件完成导入和导出Excel

jxl也可以操作Excel

14 作过接口吗?怎么做的?采用什么技术?

在业务受理、自动分单时,bos系统需要调用物流公司的crm系统获取客户信息。

我参考接口文档进行开发,参考接口文档中的参数定义编写代码。

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

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

15 你了解的还有哪些接口技术?

对于大数据量传输的,自己的系统之间一般我们就直接使用socket的方式传输了。

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

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

axis

hessian

dubbo

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

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

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

17 你参与过系统维护吗?系统维护的流程是? 

参与过,系统维护流程如下:

18 这个项目开发过程中遇到了哪些问题?

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

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

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

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

19 从这个项目中你收获了什么?

1、整个项目下来,使自己的技术得到了一定的提升

2、虽然自己只是一个开发工程师,但是可以体会到应该站在更高的层次来看待整个项目

3、意识到沟通的重要性

4、结识了一帮兄弟,一起加班一起奋斗

bos物流面试题的更多相关文章

  1. BOS物流管理系统-第八天

    BOS物流管理系统-第八天-权限系统设计-Shiro 回顾: 两大块业务:基础设置模块,业务派单模块. 两天:权限控制. 拦截器大的范围的.纯登录级别(认证级别)大颗粒的权限控制的一种技术. Shir ...

  2. BOS物流管理系统-第五天

    BOS物流管理系统-第五天-定区管理-WebServcie远程调用 主要内容: 分区设置-导出(分区条件查询后的结果导出为Excel-POI生成Excel和文件下载) 定区管理---定区添加(定区关联 ...

  3. BOS物流管理系统-第一天

    BOS物流管理系统-第一天-系统分析.环境搭建.前端框架 BoBo老师 整体项目内容目标: 对项目概述的一些理解 亮点技术的学习 注意学习方式:优先完成当天代码. 其他内容. 最终: 学到新的技术,会 ...

  4. JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)

    1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ...

  5. JAVAEE——BOS物流项目03:学习计划、messager、menubutton、登陆拦截器、信息校验和取派员添加功能

    1 学习计划 1.jQuery easyUI messager使用方式 n alert方法 n confirm方法 n show方法 2.jQuery easyUI menubutton使用方式 3. ...

  6. JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入

    1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...

  7. BOS物流项目心得

    定区管理 (和分区有何区别) : 区域管理针对自然行政区, 行政区域比较大,不可能让取派员去负责整个行政区域, 需要进行分区,将行政区域细分 ,成为很多小区域(分区), 需要为分区知道取派人员 , 在 ...

  8. 学习BOS物流项目第九天

    1 教学计划 1.业务受理需求分析 a. 业务通知单 b.工单 c.工作单 2.创建业务受理环节的数据表 a.业务通知单 b.工单 c.工作单 3.实现业务受理自动分单 a.在CRM服务端扩展方法根据 ...

  9. JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

    1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ...

随机推荐

  1. iOS:学习runtime的理解和心得 (转)

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下, 一为 查阅方便 二为 或许能给他人一些启发, 三为 希 ...

  2. while & do-while

    while的形式——while(条件表达式){循环体:} 当满足条件表达式时,执行循环体,之后继续验证是否满足条件表达式,满足继续执行循环体,之后重复,直到不满足条件表达式,循环结束.    先判断, ...

  3. RabbitMQ高级应用

    高级应用一: 手动模式和自动应答模式 1. 了确保消息不会丢失,RabbitMQ支持消息应答.消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了.RabbitMQ就可以删除它了 ...

  4. Mysql Java 驱动安装

    怎么安装MYSQL的JDBC驱动 1.下载mysql for jdbc driver. http://dev.mysql.com/downloads/connector/j/5.0.html 2.解压 ...

  5. HTML5 学习记录——2

    20150826 1.声明文档类型 <!DOCTYPE>  声明HTML是用什么版本写的. 常用声明; 2.HYML头部元素   <head> <title> 定义 ...

  6. PHP+MySQL百万级数据插入的优化

    插入分析 MySQL中插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1x记录大小) 插入索引:(1x索引) 关闭 ...

  7. node.js+express+jade系列六:图片的上传

    安装npm install formidable 先把文件上传到临时文件夹,再通过fs重命名移动到指定的目录即可 fs.rename即重命名,但是fs.rename不能夸磁盘移动文件,所以我们需要指定 ...

  8. HTML5中Modernizr类库的作用和使用

    Modernizr 是一个用来检测浏览器功能支持情况的JavaScript 库.通过这个库我们可以检测不同的浏览器对于HTML5特性的支持情况. 使用Modernizr类库和使用其他第三方类库的方法是 ...

  9. ONVIF协议测试工具 ONVIF Device Test Tool 29 12.12 最新版

    ONVIF协议测试工具 ONVIF Device Test Tool 29 12.12 最新版 包含文档和工具,本人亲测,好用! http://download.csdn.net/detail/li_ ...

  10. bzoj 2001: City 城市建设 cdq

    题目 PS国是一个拥有诸多城市的大国,国王Louis为城市的交通建设可谓绞尽脑汁.Louis可以在某些城市之间修建道路,在不同的城市之间修建道路需要不同的花费.Louis希望建造最少的道路使得国内所有 ...