SpringMVC与hibernate整合
好久没有动手搭建框架了,还是有点生疏。看了下Spring官网,又出了很多如spring cloud、portlet等新框架和规范。hibernate也有不少的改进,也开始走高度模块化路线了(ORM 、Search、Validator、OGM、Tools、Others)。搭建的过程中还是一点点查作用,还有版本依赖。记录下过程,留做以后参考。
- POM配置
- Web.xml配置
- Spring&hibernate配置文件
- 目录结构
- 通用的CRUD
- 通用的工具类
POM配置
1、添加Spring相关Jar
2、添加Hibernate相关Jar
3、添加依赖辅助Jar和工具类Jar
4、POM环境插件配置
对maven不熟,比较难知道到底怎么把这些Jar按照一定顺序添加到POM中。对依赖辅助的Jar和工具类Jar也是这样。整个过程一直在参考别人的写作规范。大概是分为3-4个部分来分类: main version setting、tools or dependent setting 、Jdbc driver setting、environment setting。
web.xml
1、contextConfigLocation
2、ContextLoaderListener
3、CharacterEncodingFilter
4、OpenSessionInViewFilter
5、IntrospectorCleanupListener
6、DispatcherServlet
web.xml中配置文件也是分这样几部分:
1、加载配置文件并配置监听器
2、设置编码过滤器
3、解决延迟加载时Session会关闭的问题
4、刷新Introspector防止内存泄露
5、SpringMVC前置控制器
如果与shiro和sitemesh配置在SpringMVC之前。如果集成Druid等放到SpringMVC之后。
SpringMVC-Servlet.xml
默认 项目名-servlet.xml;默认地址在WEB-INF目录下
1、开启注解<mvc:annotation-driver>
2、开启类扫面<mvc:component-scan>
3、配置静态资源映射 or 加载properties配置文件
4、InternalResourceViewResolver
5、ExceptionResolver and multipartResolver
可选<mvc:interceptors>
Spring-context.xml
默认名字applicationContext.xml,为了和上面统一,改成spring-context.xml。
主要用于spring的注入和集成其他框架。例如:hibernate、mybatis等ORM框架。
1、加载配置文件,一般是jdbc.properties或者resouce.properties
2、<context:component-scan> 开启后,默认不需要再设置<context:annotation-config/>
3、datasource,3.1后可以用 profile="production" 来隔离生产与测试环境
4、sessionFactory
5、transactionManager
目录结构
完整版:
cn.fly
--common //通用的包集合:Utils与第三方插件
--core //核心封装类
--examples //实例
--dao
--model
--service
--web
--webservice
--generate //代码生成器
--modules //业务模块
精简版:
cn.fly
--common //通用的包集合,untils
--core //核心封装类
--modules //业务模块
--dao
--model
--service
--web
--webservice
通用的CRUD
hibernate通用的查询模式分类:Query 与 Criteria。集成能节省很多重复代码工作。
**PS**:Spring3.1集成Hibernate4不再需要HibernateDaoSupport和HibernateTemplate了,直接使用原生API即可。
原HibernateDaoSupport与HibernateTemplate是spring实现的继承Hibernate API后封装一次。现在hibernate4,自身实现了这些关闭session和使用同一个session防止重新创建的功能。可直接对接API。
工具类
……
以后补充吧。这边就先写到这里。后期需要补充的是集成shiro、ehcache、redis、JMS等,以及restful的实现。