SSH中的java项目经验一些总结

阿玻罗软件(上海)有限公司已经两年了.中国银行营销系统,到民生银行小微信贷工厂建设.再到交通银行ioffice移动平台项目.以前所学的SSH好多都用不上

公司的框架.都是负责项目的贷款查找模块开发和测试.为什么总是要我管这些呢.其实心里还真是喜欢解决代码问题的.这里总有机会去深圳了.哈哈..


以下是我空的时候做的几个小项目.有人要可以分享.

    项目部分案例:A B 两个,不做jsp方面的总结.     (服务器在我自己电脑上,不一定随时开着) 也可以用微信加我微信公众平台号:  laser7     直接查看

http://bsyg.vicp.net/netctoss-ssh-hd/cost/findCost


这个项目用SSH架构,其中主要用到:  struts2用filter配制请求,和OGNL表达式,   hibernate的多级缓存应用及优化,利用hibernate建表也是比较省心的一件事.   spring  的数据源管理,SessionFactory对java Bean的管理我用的是用注解方式.虽然配制起来有点麻烦,用起来真是很爽的.不知道要少写多少代码.

其实我感觉这三个框架所有的业务最终还是要回到struts2的配制中.这个是最重要的.

在上海奔波两年难道只是为了积累人生经验?

A项目:

某公司DMS数据采集系统:   

主要总结经验有三:

一.数据文件解码与编码,用socket.流的传送文件到服务器(设计为单例的),并用了定时器.(Timer.schedule).后来改为:插件Quartz+Spring来实现.具体实现还可以用过虑器等

二,由于数据不多,并且大多用于以上项目的报表与帐单输出,oracle中用pl/Sql做了相关的存储过程,用于输出显示.在此不做说明;

三.客户端可能有多个(大并发),所以服务端在指派任务时我用延迟的线程池+双缓冲队列.(项目经理说这个队列以后都会用得很少.)

SSH中的java项目经验一些总结_第1张图片


   通过读取UNIX系统日志文件,获取其中用户的登录记录加以处理统计,最终生成多干对登录登出记录上传至服务器,等待分析。



读取的日志文件为:wtmpx
其为一个纯2进制文件。


通过我们的程序最终应将此文件转化为一个记录了每个用户的一组登录登出数据的文本文件


实现过程:
wtmpx此文件中记录了若干条用户的操作数据,登录和登出分别都记录在该文件中。此文件会根据用户的操作而不断增长的。unix会将每次用户的操作写入该日志文件。

1:
  从日志文件中读取10条2进制数据。并存入一个临时文件中。
临时文件名:temp.log
  那么我们就需要将当前读取10条数据后,游标的位置记录起来,以便我们下次再读取日志文件时直到从哪里开始。

记录游标位置的文件:
last-position.txt

第二步:
  从临时文件temp.log中将每一条2进制的数据转换为我们可以理解的字符串信息,并存入一个解析后的日志文件中log.txt
  对于unix的日志文件中的一条数据中有若干信息,但我们不需要将所有信息全部解析出来。这里我们只采集我们需要的部分信息,其中包括:

第三步:
   将log.txt中的数据匹配成对,将匹配上的数据保存在logrec.txt文件中,等待被发送至服务器。
   将没有被匹配成对的数据存入login.txt文件中,等待下次匹配



B项目:NETCTOSS某公司计费支撑系统-网络版:

  --用于维护UNIX服务器账号、资费标准, 以及查询用户消费情况的在线系统。
--系统分为如下模块:资费管理、账务账号、 业务账号、角色管理、管理员管理、账单  管理、报表等。
--我们开发其中的资费、账务账号、业务账号、 角色、管理员(这两个数据表也用到很多的关系表中间表,自认为比较麻烦)。


主要总结经验如下::

一:查询.

带条件、分页、关联:为了客户的良好体验,一般都是真分页,不做假分页,当然前期做案例演示还是用假分页好.主要是Sql(本项目用的是Spring+Hibernate,以后都写为Hql)的判断与拼写,这个在多个模块中都用到.我想这个得成一个模板才好(当然前台也是),其中对参数的分配比较麻烦,不过和后面的角色与管理员分配相比就差了些.

二.权限与角色模块管理

. --用途是能够满足一个软件的多元化,满足不同的人的使用需求,就是要给不同的人分不同的模块。现在让我说也很难说得清,但心里对如何操作却是明白

为什么说不好说呢,因为BS架构考虑到下拉框的传输,struts中的不同tags不同,写完完全不同,从xml中读出权限后处理为一个list,再通过中间表来找到相关的角色

这时就是不简单的修改,而是一个修改动作包含了:查询,删除,再增加的操作(见下面)

--角色复选框的值,是查询出的所有的角色,不是模块。
--新增时分3步骤(参考角色新增)
a、新增管理员数据
b、从新增数据中得到管理员ID
c、根据管理员ID,以及页面传递过来的一组角色ID,
新增管理员和角色中间表数据。
 


----权限表:用XXX.xml替代,做为一个数据源,不管是oracle,mysql等,还是一个文本,都要做到方便的读写,这个读xml文件其实不难,但是应用广,我在做的微信公众平台

后才发现.所有传输数据都是写为xml格式,(当然一些接口还是用json来传递参数).

===最后就是权限控制,我们在前端用到:轮询.(相当于多次的ajax提交数据,当然也有点类似servlet中的转发)

----- 写一个权限控制拦截器,在拦截方法中,判断Action的URL,从而判断它访问的模块,进而可以知道当前访问的模块,将此信息存入session------


以上包含的信息量太大,本人水平有限,不能尽述,只能在实践中多多运用熟悉才能完全掌握.希望看到此的HR或前辈们能介绍一下工作.工作地点无所谓.北上广都可以.


也希望以后在项目中多用到新的点子,完善我的微信平台.平台名字是以前注册用的,不必关注.





你可能感兴趣的:(ORACLE/MySql,JDBC_DAO/HAB,应用,经验,hibernate,string,分页)