先从整体来说,系统用了典型MVC设计理念,前端和业务之间的交互采用jsp+struts2,数据库的事务操作都使用hibernate实现,spring来管理两者之间的关系,提供依赖注入(DI)和切面事务(AOP),整个一个web项目整体上的配置主要体现在web.xml中,下面先说web.xml配置要点。
(1)、配置过滤器 OpenSessionInViewFilter,主要功能是用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定,但出现org.hibernate.LazyInitializationException错误的时候,需要配置这个filter。
(2)、配置log4j,包括log4j的存放位置,配置文件默认刷新时间,监听器等,
(3)、spring的XML配置文件和spring监听器的配置,这里配置的是整个项目的spring配置文件,多数业务都是这里完成
(4)、配置Struts2的FilterDispathcer的Filter,前天页面的跳转必须要通过struts2
web.xml基本上就是这些重要的配置文件,如果需要使用到spring security权限验证框架,也需要配置相应filter,配置玩web.xml,下面需要配置spring.xml,这里我把配置文件再分为相应action.xml、service.xml、dao.xml、db.xml,前面的三个配置文件主要是依赖注入发充分体现,action处理数据需要依赖service,service需要依赖dao,这样分解可以使得代码结构更加清晰,dao只负责对db的操作,service是相应的业务逻辑处理,而action则是页面数据的管道,基本上按照action ref相应的service,service ref相应的dao,dao ref sessionFactory。
在db.xml中配置比较关键,这里首先配置数据库的配置文件和驱动源,再配置底层session工厂,依赖属性包括(3个):数据源、hibernate属性、映射文件列表,这些是基本的配置
classpath:jdbc.properties
org.hibernate.dialect.MySQLDialect
true
true
实体路径
在配置事务,也就是spring提供的事务切面,实现所有方法的事务管理,这里看来spring确实很优美,几行配置就搞定数据的事务,切面编程的优点。
主要的配置就这些啦,还有hibernate的实体关系就不一一贴出来了,这些都是以配置文件的形式,相信很多人用完一次再也不想用配置文件了,实在是太多了,使用注解会少很多配置,看起来也清楚明白,而且在接触了spring MVC之后,发现struts2并不好使用,前端部分可以换成spring mvc会更好。
学生一枚,欢迎纠错!!!