Spring Web MVC和Hibernate的集成配置详解

网友投稿 292 2023-03-02


Spring Web MVC和Hibernate的集成配置详解

网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本。所以我在这里使用更新的版本来说明一下。

添加项目依赖

首先我们需要一个java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖。我在这里使用Gradle构建工具,构建脚本如下。我们只要引入spring-webmvc和spring-orm这两个包,其他的Spring依赖会自动由构建工具解决。然后还需要引入数据源、Hibernate、jsTL等依赖项。脚本的最后定义了一个任务用于生成对应的pom文件方便Maven工具使用。

group 'yitian.learn'

version '1.0-SNAPSHOT'

apply plugin: 'java'

apply plugin: 'war'

apply plugin: 'maven'

apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'

sourceCompatibility = 1.8

repositories {

maven {

url "http://maven.aliyun.com/nexus/content/groups/public/"

}

jcenter()

}

ext {

springVersion = '4.3.6.RELEASE'

aspectjVerison = '1.8.10'

}

dependencies {

testCompile group: 'junit', name: 'junit', version: '4.12'

compile group: 'org.springframework', name: 'spring-webmvc', version: springVersion

compile group: 'org.springframework', name: 'spring-orm', version: springVersion

compile group: 'org.glahttp://ssfish.web', name: 'jstl-impl', version: '1.2'

compile group: 'org.projectlombok', name: 'lombok', version: '1.16.12'

compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.6.Final'

compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.40'

compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.1.1'

compile group: 'org.aspectj', name: 'aspectjweaver', version: aspectjVerison

}

task writeNewPom {

doLast {

pom {

}.writeTo("$projectDir/pom.xml")

}

}

配置web.xml

然后打开WEB-INF/web.xml文件,添加以下内容。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1">

contextConfigLocation

/WEB-INF/applicationContext.xml

dispatcher

org.springframework.web.servlet.DispatcherServlet

1

true

dispatcher

/

org.springframework.web.context.ContextLoaderListener

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

version="3.1">

contextConfigLocation

/WEB-INF/applicationContext.xml

dispatcher

org.springframework.web.servlet.DispatcherServlet

1

true

dispatcher

/

org.springframework.web.context.ContextLoaderListener

配置Spring

相对应的应该有两个Spring配置文件/WEB-INF/apphttp://licationContext.xml和/WEB-INF/dispatcher-servlet.xml。前者是根配置文件,用于配置数据库等后端、全局的组件,后者是MVC配置文件,用于配置MVC和Web相关的组件。

然后在/WEB-INF/applicationContext.xml中,我们配置Hibernate和Spring集成的组件。我们需要配置数据源、HibernateSessionFactory、Hibernate事务管理器、事务连接点、Hibernate模板等Bean,然后在操作数据的时候使用Hibernate模板,就能获得Spring控制的事务管理功能了。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:tx="http://springframework.org/schema/tx"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/tx

http://springframework.org/schema/tx/spring-tx.xsd

http://springframework.org/schema/aop

http://springframework.org/schema/aop/spring-aop.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

true

true

create

transaction-manager="transactionManager">

expression="execution(* yitian.learn.dao.*.*(..))"/>

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:tx="http://springframework.org/schema/tx"

xmlns:aop="http://springframework.org/schema/aop"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/tx

http://springframework.org/schema/tx/spring-tx.xsd

http://springframework.org/schema/aop

http://springframework.org/schema/aop/spring-aop.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

true

true

create

transaction-manager="transactionManager">

transaction-manager="transactionManager">

expression="execution(* yitian.learn.dao.*.*(..))"/>

expression="execution(* yitian.learn.dao.*.*(..))"/>

然后来配置一下Spring Web MVC的组件。在dispatcher-servlet.xml中添加以下配置。这里添加了JSP视图解析器和类型转换器,如果不需要自定义类型转换可以将对应片段删掉。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:mvc="http://springframework.org/schema/mvc"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd http://springframework.org/schema/mvc http://springframework.org/schema/mvc/spring-mvc.xsd http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

suffix=".jsp"

view-class="org.springframework.web.servlet.view.JstlView"/>

xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:mvc="http://springframework.org/schema/mvc"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd http://springframework.org/schema/mvc http://springframework.org/schema/mvc/spring-mvc.xsd http://springframework.org/schema/context http://springframework.org/schema/context/spring-context.xsd">

suffix=".jsp"

view-class="org.springframework.web.servlet.view.JstlView"/>

suffix=".jsp"

view-class="org.springframework.web.servlet.view.JstlView"/>

至此,Hibernate与Spring的集成就算配置完了。最后我还写了一个小例子,放在了Github上,有兴趣的同学可以看看。

总结

以上就是本文关于Spring Web MVC和Hibernate的集成配置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ReactNative实现Toast的示例
下一篇:Spring @Transactional工作原理详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~