北京交通运输职业学院网络财务管理系统项目技术经验总结

文章目录
  1. 1. 基本开发环境
    1. 1.1. JDK版本
    2. 1.2. 中间件服务器
  2. 2. 前台
    1. 2.1. 修饰框架sitemesh
    2. 2.2. 标签
    3. 2.3. JS
  3. 3. 后台
    1. 3.1. 持久层框架mybatis
    2. 3.2. BSF

为期五个多月项目编码、测试开发到今天可以说终于告一段落了。回顾这段时间内要忠心的感谢我的领导对我的放心和支持,有了他们才使得我在这个项目中学到的更多成长的更快。

只有多总结才会成长的更快,废话少说下面还是来好好总结下这个项目中技术方面的经验心得吧。

这个项目使用的是我老大从ehr中把ehr的员工管理、用户管理、组织管理、权限管理、系统管理、角色管理、岗位管理组合成的一个平台,其实准确的讲应该还是一个SSM(struts2 spring mybatis)框架,他拥有平台的雏形,却没有平台的强大。不过他也已经为快速开发提供了很好的基础了,只有在这样的开发环境中对我来说才会学到的更多。下面就要来说说这个麻雀虽小但五脏俱全的平台了,工欲善其事必先利其器,就从开发环境说起。

基本开发环境

JDK版本

JDK1.5
JDK1.6
不过JDK1.5好像不支持@Override注解和对读取硬盘容量没做提供相关的API而在这个系统中由于使用了@Override注解和对读取硬盘有相应的需求所以最好使用JDK1.6。

中间件服务器

JBoss4.0.2
①:JBoss与Tomcat的关系:说到服务器由于以前接触Tomcat比较多对JBoss了解甚少,由于服务对程序员的要求并不高致使到现在虽然和他打了快一年的交道了但现在还是不太了解直到现在也没有拿他和Tomcat进行比较过。还好老大给我这个机会要我好好总结,由于自己没有心得只能从网上找找了,我总结了下网上的说法大概可以用这么个字概括“基于Tomcat为内核、集多功能于一身,性能卓越”。说到性能卓越对于我来说似乎是有点对牛弹琴了,在平时开发中根本感觉不到这点关注更多的还是程序本身,以及了解服务器基本功能和目录结构其每个目录下的作用。
②:开发中可能被修改的JBoss配置文件
控制台打印sql(服务器目录下server/default/conf/log4j.xml)

1
2
3
4
5
6
7
8
9
10
11
12
<appender name="IBatis" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout">  
<param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<logger name="java.sql" additivity="true">
<level value="DEBUG" />
<appender-ref ref="IBatis" />
</logger>

日志记录同上配置文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<appender name="BMS" class="org.jboss.logging.appender.RollingFileAppender"> class值据我了解有四种"RollingFileAppender"是超出指定文件大小就重新生成一个新的log文件 其余四种网上都有详细说明我就不一一总结了 
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/bms/bms.log"/> 这是日志文件保存的路径以及文件名 <param name="Append" value="true"/> 是否追加
<param name="MaxFileSize" value="500kB"/> 指定log文件大小
<param name="MaxBackupIndex" value="10"/> 最大备份数量超过就覆盖原来的
<layout class="org.apache.log4j.PatternLayout"> 输出格式 表达式搞不懂
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> </layout>
</appender>
<category name="com.bopasoft">
<appender-ref ref="BMS"/> </category>
<root>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="BMS"/>
</root>

最后一个关注的比较多的是URL的编码这个是在服务器目录下的server/default/deploy/jbossweb-tomcat55.sar/server.xml中修改
③:数据库
oracle10g
④:IDE工具
Eclipse 用Eclipse开发最纠结的问题就是调试,但学会了配置调试就不是问题了在这就不详细些了
⑤:ANT
构建项目部署 过去对ANT了解也很少现在也只能看懂每条命令的含义要自己写还是不太会终于把开发环境说完了,其实重点还是功能的实现,采用什么技术实现。

前台

修饰框架sitemesh

他是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的。它能帮助我们再由大量页面工程的项目中创建一致的页面布局和外观,如导航条。它不仅能处理动态(Jsp、Asp)的内容还能处理静态(Html)的内容。他就像include那样将一个文件嵌入到另一个文件中。sitemesh有两个标签库分别为sitemesh-decorator.tld、sitemesh-page.tld

<decorator:head />插 入原始页面(被包装页面)的head标签中的内容(不包括head标签本身)。
<decorator:body />插入原始页面(被包装页面)的body标签中的内容。
<decorator:title default=”…” />在标签处插入原始页面(被包装页面)的原有的标签的属性中的内容,还可以添加一个缺省值。

只需要将被修饰的页面路径添加到decorators.xml中就会别相应的模板修饰。而谁来读decorators.xml他呢什么时候读?根据他的作用不难知道肯定是一个过滤器不错他就是一个过滤器是过滤器就得在web.xml中配置了。注意的是要将decorators.xml放在WEB-INF目录下。sitemesh固然是好但还是不够太灵活,但只能修饰有想同和相似的页面细节,而且请求每个页面都需要进行重新生成后果就是牺牲性能了。

标签

在前台页面还有要我耳目一新的是自定义的各种标签,过去对标签的定义使用定义一直是一知半解,觉得他是一个很神奇的技术。通过了这次开发大量标签的使用,并且亲自实现了二个标签。感觉其实原理也不过如此,不过对他的定义还没到信手拈来,出神入化的境界每次定义都需要参考文档。

JS

说到js可以说是有了一定的提高,以前总是说js是基于对象的脚本语言,也感受到了对象的体现。通过这次要我更加深刻到的体会到了他面向对象的思想,可谓是有所小突破哈哈。js面向对象编程在复杂的逻辑也游刃而解。还有它也能实现公用属性私用属性静态方法,非静态方法。不禁要我感叹它不是基于对象完全是面向对象啊!有了上面的基础定义各种选择组件也不成问题了。

后台

持久层框架mybatis

第一次使用mybatis感觉更多的是还是数mybatis.xml文件的编写,普通的还是很好写的就是那种一对一、一对多、一对一一对多多条件的,记得当时第一次写还是花了我不少时间主要是对标签中的各种属性不了就。现在回过头在看其实他们的标签那样定义还是很有道理的,写起来也没那么吃力了。

BSF

BSF也是第一使用,不过我在这个项目中用到他的地方也很少,只要在那个活动模板中公式验证的时候用到。它的功能确实很强大能在后台执行javascript、vbscript等代码。对各种验证、条件判断做了很好的支持。可惜的是我并不太了解它。

后台用到的新技术应该只有这么多了,最后应该就是编码规范和设计思想了。其实好的设计思想是来自于技术,只有懂的技术多了才会有好的设计,谈设计思想似乎还有一段的距离。还有的就是体会更深的是文件名、包名、类名、变量名、方法名的命的规范重要性,好了总结就写到这了。