1、请描述一下这个系统

从两个方面回答,

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

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

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

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

扩展问题:

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

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

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

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

3、说说系统的架构?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框架整合开发远程调用接口。

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

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

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

本系统使用hibernate5.0.7 版本。

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

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

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

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

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

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

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

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

9、这个系统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中配置过虑规则,哪些可以匿名访问,哪些必须要认证。

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. java宅急送下载_java宅急送BOS物流项目

    本套视频是宅急送BOS物流项目推出历时三年后推出的一套综合项目实战视频,该视频针对有SSH(Struts2+Spring+Hibernate)框架基础- 课程简介 [已更新] 隐藏内容,您需要满足以下 ...

  2. BOS物流项目--问题汇总

    请描述一下这个系统? 从两个方面回答, 第一个方面:系统背景及系统概述 本系统是基于B/S架构而设计开发的,是某物流公司的一个后台管理系统,属于物流公司整个ERP平台的一个组成部分.本系统是此物流公司 ...

  3. java 动态加载ztree_JAVAEE——BOS物流项目02:学习计划、动态添加选项卡、ztree、项目底层代码构建...

    1 学习计划 1.jQuery easyUI中动态添加选项卡 2.jquery ztree插件使用 n 下载ztree n 基于标准json数据构造ztree n 基于简单json数据构造ztree( ...

  4. Bos物流项目之在线下单流程图

  5. 面试中 项目遇见的难点答案_你和offer之间只差这几个面试问题!常见面试问题汇总...

    99%的人都会大呼"坑爹"的面试问题,你真的知道该怎么回答吗? 记得第一次面试的时候,面试官对简历也很满意,前面都聊的好好的,最后问了一句简历上没有的内容:你的职业规划是什么?我一 ...

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

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

  7. JAVA必背面试题和项目面试通关要点

    一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链接查询和优化问题,手写SQL语句,例如四个球队比赛,用SQL显示所有比赛组合:举例2:选择重复项,然后去掉重复项:) 数据库里 ...

  8. 中高级前端面试知识点汇总

    1.1.什么是HTML语义化?有什么好处? 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析. 为了在没有 CSS 的情 ...

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

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

  10. 面试题(1)最全BAT面试精华汇总

    面试题(1)最全BAT面试精华汇总 面试题(2)阿里最全面试100题 面试题(3)史上最全阿里技术面试题目 面试题(4)阿里等BAT必考多线程面试60题 面试题(5)BAT面试笔试33题:JavaLi ...

最新文章

  1. MRTG教程(二):MRTG配置文件的生成工具cfgmaker(上)
  2. 基于SSM实现在线课程学习及作业提交系统
  3. Palm pre,我的M8又要落伍了
  4. LeetCode-剑指 Offer 06. 从尾到头打印链表
  5. oracle12c bug,Oracle12c R2注意事项: 因BUG生成大量的trace file 包含KRB: (rman module)
  6. 深入理解python特性_深入理解Python特性(7)
  7. cordova 蓝牙_Ionic通过Cordova插件使用设备能力
  8. Boost:bimap双图的range范围的测试程序
  9. 《中国人工智能学会通讯》——11.65 双重代价敏感的属性分类模型
  10. 增加字库 安卓_【Android】Android4.4添加新语言和字库
  11. 全文搜索之 Elasticsearch
  12. 【grpc】[Python] A file with this name is already in the pool
  13. iOS 使用CocoaPods
  14. CC2500的CCA
  15. 二十五个软件测试经典面试题
  16. 银行考试计算机也需要考金融知识吗,银行招聘考试科技岗考试科目及考试内容...
  17. 2020年总结以及2021年的计划
  18. Java多维数组length
  19. nginx 配置443端口
  20. vim 强制保存修改只读文件

热门文章

  1. 量子计算机底层逻辑,高通AI研究院提出通过量子场论,可将深度神经网络映射到量子计算机...
  2. 老男孩python作业_老男孩python学习之作业一购物小程序
  3. 在线URL编码加密工具
  4. [原创]C#中国象棋网络版源代码-C# Chinese Chess Source Code
  5. node.js windows解压版安装与配置
  6. 2012-11-25 3:00 发喜讯,终于把S5pv210 VGA 分辨率提升到1440 x 900/1920 x 1080了!
  7. 25B无人直升机调试(Tuning)
  8. 四旋翼飞行器——飞行原理
  9. opencore 0.6.3 华硕_Apex英雄支持NVIDIA Reflex 华硕显卡低延迟利器_
  10. 采用WPF开发第二版OFD阅读器