java面试复习目录,要面试的小伙伴看过来

3、SOAP是什么:simpleobjectaccessprotocal,简单对象访问协议,它是作为一个基于xml格式的协议,用于在网络上传输数据。底层是基于http协议的,可以这么理解:soap=http+xml,而http协议的底层又是基于TCP/IP协议的。soap现有两个版本1.1和1.2。

4、SOAP的组成如下:

Envelope–必须的部分。以XML的根元素出现。

Headers–可选的。

Body–必须的。在body部分,包含要执行的服务器的方法。和发送到服务器的数据。

5、第一种:调用webserivce的四种方式

1>.利用wsimport命令生成客户端调用的java代码

2>.利用HttpUrlConnection对象,手工拼接soap协议报文,向服务器发送请求获取数据。

3>.通过ajax调用js+xml跨域请求,这个浏览器是不支持的,但是我们可以绕过去

4>.通过Service客户端编程

第二种:cxf提供的类发布webservice

1.ServerFactoryBean

2.JaxWsServerFactoryBean

3.通过配置文件发布(Spring)

客户端:

4:ClientProxyFactoryBean调用

调用原则:ServerFactoryBean---ClientProxyFactoryBean

5:JaxwsProxyFactoryBean调用

调用原则:JaxWsServerFactoryBean-----JaxwsProxyFactoryBean

6:wsdl2java生成本地代码调用

7:通过配置的文件的方式调用

8:通过jquery调用

第十二章:成都杰信贸易综合管理系统

面试题:说一下你最近做的一个系统。

最近我们开发的一套系统是给成都杰信贸易有限公司公司开发的,这家公司主要从事纺织服装进出口贸易,是一家加工生产及销售为一体的服装公司,最近几年业务做到海外去了,随着他们公司业务的不断壮大,原来那套系统已经没办法满足他们的发展需要了,所以他们公司领导就想搞一套物流系统,提高他们的办公效率。整个系统有仓储管理(包括:采购单、仓库、货物、条形码、入库、出库、退货、盘点、库存、库存上限报警、统计查询)、展会管理(包括:展会管理、出单管理)、货运全流程管理,包括购销合同、出货表月统计、出口报运、装箱单、海运委托单、发票、财务统计、决策分析(包括:成本分析图、销售情况统计、重点客户、经营情况同期比对统计、工作绩效等)这么些功能。我在这个项目中,负责货运管理部分模块的开发以及决策分析报表的开发。

货运管理模块里,我负责开发合同管理、报运管理、装箱管理、生产厂家模块。这三个模块之间是紧密联系的,所谓合同管理就是对成都杰信贸易公司所有的合同进行CRUD的操作、合同下的货物管理、货物下的附件管理。在这个模块里,最复杂的地方是需要理清合同、货物、附件、生产厂家之间的关系以及货物信息的导出处理。一个合同包含多个货物,一个货物可以有多个附件,一个生产厂家可以生产多个货物,所以合同跟货物之间是一对多的关系,货物跟附件是一对多的关系,生产厂家跟货物之间是一对多的关系。理清了这一层关系后,开发起来就简单了。

在我们物流项目中,有很多的设计技巧和开发亮点,比如说:

1、在操作货物信息和附件信息的时候,在合同列表中,为了方便用户录入货物信息,我们在每条合同信息后面,加了一个货物的超链接,点击货物的超链接,可以进入货物信息管理页面,对货物进行CRUD操作,由于货物信息每次录入的比较多,为了方便用户快速录入,每次录入一条货物信息后,我们还是跳转到该货物信息录入界面,同时,了解到用户每次录入货物信息的时候都是一次性录入多个厂家的多个信息,所以我们在跳到该页面的时候,进行了生产厂家等信息的回显,这样极大的提高了用户操作效率。

2、在录入附件信息的时候,用户以往的系统是点击一条合同信息进入到该合同对应的货物列表页面,再点击货物列表中的一个超链接进入到附件列表页面,当用户想直接录入附件信息的时候,需要点几次才能到达附件页面,所以我们在设计这个的时候,直接在合同列表页面加了一个附件按钮,点击这个超链接直接进入到附件录入页面,在这个录入页面,给用户提供一个货物信息的下拉框进行选择,这样又方便了用户的附件信息的录入了。

3、在合同管理界面,我们提供了合同的批量复制功能。

4、在导出出货表的时候,为了避免多线程安全问题,后下载的文件覆盖前下载的文件,我们采用了按照时间点自动分目录的方式,文件名采用UUID算法命名。

5、当系统上线时间长了,系统的历史合同数据、历史货物信息、历史附件信息数据越来越多,严重影响了系统性能,我们对系统提供了历史数据归档功能,当用户点击归档按钮的时候,将每年数百万的历史数据导出到excel文件中,同时移动数据到历史表中。

6、在生产厂家信息维护界面,为了方便用户录入,我们采用了自定义的一个js控件进行了批量新增和批量修改,这样加快了用户操作的速度。

7、系统上线后,出现了很多性能问题,反应速度不是很快,用户不太满意,为此,我们做了一个系统性能的分析,利用struts2的拦截器,在拦截器中,对所有用户访问的哪个类的哪个方法、方法执行消耗的时间等进行记录,并存储到数据库中,然后用amFlash技术做性能分析报表,找到系统的性能瓶颈,然后针对性的进行优化,两个礼拜后,我们对系统的性能报告进行分析,发现,用户主要访问的模块在上午8:30-9:30,主要访问的模块是货物信息录入、查询以及附件信息的录入查询,因为这个点是上班时间点,而且录入货物信息和附件信息较多,所以,针对这几个方法,我们采取了以下优化策略:

1>、利用hibernate抓取策略进行优化,尽量减少增加、和查询的sql语句;

2>、报表查询时,采用原生态的sql语句,不用hibernate的hql语句,使用Spring的JdbcTemplate模版,为此,我们单独又写了一个spring配置文件,这个配置文件的作用是配置数据库连接池和给JdbcTemplate模版注入属性,对于加载Spring配置文件的这个类,我们采用单例设计模式,避免多次创建对象实例,做到了性能最优和线程安全。

3>、对数据字典进行二级缓存的配置,避免多次与数据库的交互。

8、在这个项目中,我们还用到了JBPM工作流技术,在合同录入完毕后,需要成都杰信贸易公司的法务部进行审核,然后提交到总经理进行审核,这是一个典型的工作流程。

9、导出出货表的技术我们使用了POI并且用模板技术实现分页功能,能够导出图文并茂的出货表,还能够对商品价格进行自动计算,不需要购买第三方报表,给用户省去了买报表的钱,得到了用户的肯定。


分享到:


相關文章: