成绩查询系统--框架篇--jar包分析

前情介绍     

       接收到一个任务,让两天完成一个成绩查询系统,搭建ssh(springmvc+spring+hibernate)框架,前台用的easyui,完成功能.项目比较小,也没有什么难点,但是由于对于代码的不熟练,导致2天没有完成任务,花费了3天的时间,功能差不多做完;然后花费几天完成优化.

       这个项目主要可用来锻炼代码量,并且其中也发现了一些问题,就是基础知识掌握的不扎实.基本上做什么功能,都要去网上查.而网上的资料太多,总是不知道选择哪个才好.

       并且由于任务时间不多,没有太多的时间来选择和思考,所以经常比较焦虑,导致找到资料也静不下心来看.后期的时候,任务不紧了,也发现自己这个毛病了,会有意识的提醒自己静下心来,看某一个资料,而不是找一堆的资料,不停的看,但是其实什么也没看进去.

框架选型

       最开始的时候,我们开始搭建框架.当时,想着不要用太新的,也不想用太老的.所以选择了spring4.0.8以及hibernate4.3.10.从网上找了几篇文章,教怎么配置就照着来了.最后对我来说比较有用的就是这篇了,SpringMVC+Spring4.0+Hibernate简单的整合.

       步骤主要还就是之前总结过的,放jar,写配置文件.但是,现在发现,其实我并不知道放什么jar进去,哪些jar是必须的,哪些在最开始整合框架的时候是不需要的,而是做某些功能才需要的.

       在这次的搭建过程中,由于jar包找的不全,就开始测试,导致报了一堆的错,然后报一个错,上网查一下解决方法,报一个查一下,基本都是少了jar包.

jar包分析

       最后,我使用的jar包就是这33个了(实际上只有30个是项目必须的,另外3个完全没用上)。


Spring的jar包

       其中有些是最开始就觉得应该有的,比如spring的4.0.8的jar,包括spring-webmvc以及spring的核心包和hibernate的require中的包,其他的就是看博客,以及报错之后解决的时候加的jar了。

       如下是12个spring有关的jar。包含aop,切面,beans,context和context-support,以及核心包,表达式,java数据库连接,orm(Object Relational Mapping,对象关系映射),以及tx(事务),和springmvc的controller层和view层的spring-web和spring-webmvc,其中我们常用的web.xml中的ContextLoaderListener监听器类在这个spring-web.jar中,而spring-mvc.xml中的视图解析InternalResourceViewResolver类在这个spring-webmvc.jar中。


       还有一个aopaliance-1.0.jar,是报错之后,给加的包。报了一个NoClassDefFoundError,找不到的就是org.aopaliance.intercept.MethodInterceptor.

       Unexpected exception parsing XML document from file nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor.


Hibernate的jar包

       还有从网上下载下来的hibernate-release-4.3.10.Final文件中的lib中的required,提供了hibernate必须的包,共10个jar.包含一个分析词法、语法的,还有1个操作字节码的,一个操作xml的,一个核心的,一个和jpa有关的,3个和jboss有关的(2个logging日志和一个transaction事务),还有2个注解有关的(常见的注解,以及索引注解)。

 1.antlr-2.7.7.jar

作用:是another tool for language recognition,用于词法、语法和语义分析。是一种工具,它可以接受词文法语言描述,并能产生识别这些语言的语句的程序.

 

2.dom4j-1.6.1.jar

作用:是一个Java的XML API,类似于jdom,用来读写XML文件的


3.hibernate-commons-annotations-4.0.4.Final.jar

作用:使用javax.persistence下的Annotation可以不依赖Hibernate的JAR包,这样就可以切换到其他的ORM框架

 

4.hibernate-core-4.3.0.Final.jar

作用:Hibernate核心包

 

5.hibernate-jpa-2.1-api-1.0.0.Final.jar

作用:对JPA(Java持久化API)规范的支持

 

6.jandex-1.1.0.Final.jar

作用:用来索引annotation的。猜测java annotations index)

 

7.javassist-3.18.1-GA.jar

作用:javassist是用来操作字节码的

 

8.jboss-logging-3.1.3.GA.jar

作用:使用一个注解处理器来实现你的带注释的接口的具体类

 

9.jboss-logging-annotations

作用:没有找到作用应该是使用一个注解处理器来实现你的带注释的接口的具体类

 

10.jboss-transaction-api_1.2_spec-1.0.0.Final.jar

作用:未找到相关作用说明

 

      还有不是required中的,c3p0数据库连接池和ehcache缓存,不过缓存我应该是没有用上的。(所以我觉得这个可以不要)



SSH必须jar包总结

       而对于这25个jar之外的8个jar包.commons-dbcp-1.4.jar,commons-pool-1.5.4.jar,是支持BasicDataSource来配置数据库连接的,如果不用BasicDataSource配置数据库的话,则不需要引入.本项目中配置的是c3p0数据库连接,这2个jar是可以不要的.

       而commons-logging-1.x.x.jar,是ASF出品的日志包,struts2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录.

       剩余的5个,一个是log4j的jar,用于日志,一个是用来操作excel,我们有导入excel的操作;一个是mysql的驱动连接,因为数据库是mysql的;还有一个是转json用的,将后台的数据转成json,显示到datagrid中;一个是jstl,在前台页面使用jstl标签,用了when和choose作为if/else来使用.

其实还有隐含的jar,servlet-api.jar由tomcat服务器提供,以及junit的jar,添加依赖即可.

       最后总结

       写这篇博客的时候,根据我上面的分析,我发现其中某些jar包是可以不用的.然后我就开始设置,发现commons-dbcp-1.4.jar和commons-pools-1.5.4.jar以及hibernate的ehcache-core-2.6.10.jar,这3个jar,在我的项目中没有,我的项目也是能正常运行的,也就是说,我完全没有用上这些jar,而这些也不是必须的.

       而log4j-1.2.14.jar,这个配置的日志,由于对日志了解不深,目前除了觉得加上这个jar,配置了log4j的资源文件之后,控制台输出的信息少了一些之外,没有其他感觉.

       而commmons-logging-1.1.1.jar不能缺少,否则会报Caused by:java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;的错.

       总结 : 搭建SpringMVC+Spring4+hibernate4,只需要提供的11个hibernate的jar(echache不用的话,可以去掉);以及13个Spring的jar.(共计24个jar)其他的都是根据自身要求添加的.

jar包放在lib下

       还有就是自己放jar包,出的一个问题.之前不知道,想要让jar包分的更清楚,就在lib中还建了文件夹,放这些jar,但是这样的话,这些包就不会自动加到web中,得自己手动add到build path中。而作为正常的动态web项目,jar放进lib中,就应该自动到Libraries的Web AppLibraries中。所以去掉这些文件夹,jar包直接放在lib下。


       直接放到lib下面,Web AppLibraries,会自动引入这些jar.(图片太长,只截取了需要的)


       以上就是配置springmvc+spring4.0.8+hibernate4.3.10的时候用到的jar包分析,总结必须的包,以及部分错误展示.接下来就是配置配置文件了.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值