- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Spring Web MVC和Hibernate的集成配置详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本。所以我在这里使用更新的版本来说明一下.
添加项目依赖 。
首先我们需要一个Java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖。我在这里使用Gradle构建工具,构建脚本如下。我们只要引入spring-webmvc和spring-orm这两个包,其他的Spring依赖会自动由构建工具解决。然后还需要引入数据源、Hibernate、JSTL等依赖项。脚本的最后定义了一个任务用于生成对应的pom文件方便Maven工具使用.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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.glassfish.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文件,添加以下内容.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
web-app
xmlns
=
"http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi
=
"http://www.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"
>
<
context-param
>
<
param-name
>contextConfigLocation</
param-name
>
<
param-value
>/WEB-INF/applicationContext.xml</
param-value
>
</
context-param
>
<
servlet
>
<
servlet-name
>dispatcher</
servlet-name
>
<
servlet-class
>org.springframework.web.servlet.DispatcherServlet</
servlet-class
>
<
load-on-startup
>1</
load-on-startup
>
<
async-supported
>true</
async-supported
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>dispatcher</
servlet-name
>
<
url-pattern
>/</
url-pattern
>
</
servlet-mapping
>
<
listener
>
<
listener-class
>org.springframework.web.context.ContextLoaderListener</
listener-class
>
</
listener
>
</
web-app
>
|
配置Spring 。
相对应的应该有两个Spring配置文件/WEB-INF/applicationContext.xml和/WEB-INF/dispatcher-servlet.xml。前者是根配置文件,用于配置数据库等后端、全局的组件,后者是MVC配置文件,用于配置MVC和Web相关的组件.
然后在/WEB-INF/applicationContext.xml中,我们配置Hibernate和Spring集成的组件。我们需要配置数据源、HibernateSessionFactory、Hibernate事务管理器、事务连接点、Hibernate模板等Bean,然后在操作数据的时候使用Hibernate模板,就能获得Spring控制的事务管理功能了.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx
=
"http://www.springframework.org/schema/tx"
xmlns:aop
=
"http://www.springframework.org/schema/aop"
xmlns:context
=
"http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<
context:annotation-config
/>
<!--数据源-->
<
bean
id
=
"dataSource"
class
=
"org.apache.commons.dbcp2.BasicDataSource"
destroy-method
=
"close"
>
<
property
name
=
"driverClassName"
value
=
"com.mysql.jdbc.Driver"
/>
<
property
name
=
"url"
value
=
"jdbc:mysql://localhost:3306/test"
/>
<
property
name
=
"username"
value
=
"root"
/>
<
property
name
=
"password"
value
=
"12345678"
/>
</
bean
>
<!--hibernate-->
<
bean
id
=
"sessionFactory"
class
=
"org.springframework.orm.hibernate5.LocalSessionFactoryBean"
>
<
property
name
=
"dataSource"
ref
=
"dataSource"
/>
<
property
name
=
"hibernateProperties"
>
<
props
>
<
prop
key
=
"hibernate.format_sql"
>true</
prop
>
<
prop
key
=
"hibernate.show_sql"
>true</
prop
>
<
prop
key
=
"hibernate.hbm2ddl.auto"
>create</
prop
>
</
props
>
</
property
>
<
property
name
=
"packagesToScan"
value
=
"yitian.learn.entity"
/>
</
bean
>
<!--设置hibernate模板-->
<
bean
id
=
"hibernateTemplate"
class
=
"org.springframework.orm.hibernate5.HibernateTemplate"
>
<
property
name
=
"sessionFactory"
ref
=
"sessionFactory"
/>
</
bean
>
<!--设置hibernate事务管理器-->
<
bean
id
=
"transactionManager"
class
=
"org.springframework.orm.hibernate5.HibernateTransactionManager"
>
<
property
name
=
"sessionFactory"
ref
=
"sessionFactory"
/>
</
bean
>
<!--数据访问对象-->
<
bean
id
=
"userDao"
class
=
"yitian.learn.dao.HibernateUserDao"
/>
<!--设置事务管理-->
<
tx:advice
id
=
"txAdvice"
transaction-manager
=
"transactionManager"
>
<
tx:attributes
>
<
tx:method
name
=
"find*"
read-only
=
"true"
/>
<
tx:method
name
=
"*"
/>
</
tx:attributes
>
</
tx:advice
>
<!--使用AOP设置事务管理-->
<
aop:config
>
<
aop:pointcut
id
=
"userDaoPointcut"
expression
=
"execution(* yitian.learn.dao.*.*(..))"
/>
<
aop:advisor
advice-ref
=
"txAdvice"
pointcut-ref
=
"userDaoPointcut"
/>
</
aop:config
>
</
beans
>
|
然后来配置一下Spring Web MVC的组件。在dispatcher-servlet.xml中添加以下配置。这里添加了JSP视图解析器和类型转换器,如果不需要自定义类型转换可以将对应片段删掉.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
"http://www.springframework.org/schema/beans"
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc
=
"http://www.springframework.org/schema/mvc"
xmlns:context
=
"http://www.springframework.org/schema/context"
xsi:schemaLocation
=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
>
<
mvc:view-resolvers
>
<
mvc:jsp
prefix
=
"/WEB-INF/jsp/"
suffix
=
".jsp"
view-class
=
"org.springframework.web.servlet.view.JstlView"
/>
</
mvc:view-resolvers
>
<
mvc:default-servlet-handler
/>
<
mvc:annotation-driven
conversion-service
=
"conversionService"
/>
<
context:component-scan
base-package
=
"yitian.learn"
/>
<
bean
id
=
"conversionService"
class
=
"org.springframework.context.support.ConversionServiceFactoryBean"
>
<
property
name
=
"converters"
>
<
set
>
<
bean
class
=
"yitian.learn.utils.String2LocalDateConverter"
/>
</
set
>
</
property
>
</
bean
>
</
beans
>
|
至此,Hibernate与Spring的集成就算配置完了。最后我还写了一个小例子,放在了Github上,有兴趣的同学可以看看.
总结 。
以上就是本文关于Spring Web MVC和Hibernate的集成配置详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持! 。
原文链接:http://blog.csdn.net/u011054333/article/details/54930571 。
最后此篇关于Spring Web MVC和Hibernate的集成配置详解的文章就讲到这里了,如果你想了解更多关于Spring Web MVC和Hibernate的集成配置详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有一个我想暂时存储的对象。该对象现在在 Controller 中, Controller 将生成一个 View 。 AJAX 请求从 View 发送到下一个 Controller 。那一刻我需要先前
从MVC 2开始,我们可以轻松创建区域。现在,我的问题与嵌套区域(区域内部的区域)有关。 选择我的“father”区域文件夹,右键单击> Add> NO选项以获取new Area。 是否有可能以其他方
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve thi
我已经尝试了一些谷歌搜索和堆栈流搜索,但事实证明这比我想象的要难找到。我需要为我们的商店迁移到 ASP.NET MVC 2 的管理提供理由。最大的帮助将是任何企业级站点或使用 ASP.NET MVC
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我有一些常见的网页,它们将出现在多个 MVC 应用程序中。对于这些页面,我想在不同的 MVC 网站之间重用相同的源代码( Controller + View )。这样做的最佳方法是什么? ASP.NE
我正在使用 Spring MVC 来构建我的应用程序。 当用户在浏览器中运行应用程序时,我想显示一个默认的 jsp。我不想用 web.xml 中的标记。 我想我可以用 我已经创建了一个文件夹并添
我可能在这里分析过度了,但是根据我对 MVC 的阅读,似乎有很多关于如何做事情的观点。 是否有一个“最佳实践”网站或文档来定义 MVC 各个部分的职责? 请记住,我使用 EF/Repository&U
当杰里米和查德 posted about their FubuMvc project ,他们提到的差异化因素之一是他们的“雷霆穹顶校长”: The “Thunderdome Principle” –
我正在为 Spring MVC 应用程序实现缓存清除系统。 为了让这个系统正常工作,我必须从给定的 url 中删除“缓存破坏代码”。假设我生成的缓存破坏代码是“123”,我有一个 .css url:/
在调试 ASP.NET MVC 源时,我发现使用了“MVC-ControllerTypeCache.xml” 文件。但我无法理解这个文件的用途。我的意思是这个文件存储在哪里?asp.net MVc 如
我刚刚在我的本地机器上安装了 Visual Studio 11 和 MVC 4 beta。但是,每当我打开一个 MVC 3 项目(我想保留为 MVC 3)时,所有引用都已更新为版本 4 DLL。当然它
我有一个 MVC 3 应用程序,它具有一些核心功能(最重要的是自动化),但主要用作不同区域或模块的门户。我想将它组织到不同的模块中,只需稍作更改也可以部署为他们自己的网站。 该项目由论坛、博客引擎、用
我有自己的服务器,正在考虑将我的一个解决方案升级到 ASP.NET MVC 4,然后再升级其余的 (3+)。 作为其中的一部分,我下载了 the standalone installer对于 ASP.
构图 我有一个 MVC 项目,其中包含 C# 类,这些类最终通过 ajax 等进行序列化和使用。我使用 TypeLite 生成这些 C# 类的定义( here 讨论了 TypeLite 的替代方案),
我正在尝试了解现代 Web 应用程序架构。在 ASP.NET MVC 中,所有业务逻辑类都在 Model 中,Controller 接受并引导用户请求。如果我使用它,是否可以使用本身是 MVC 架构但
我有一个带有 OWIN 的 WebAPI 2 应用程序。现在我正在尝试向所有内容添加一个 MVC 5 Controller ,但没有找到我的 MVC 路由。我收到以下错误: No HTTP resou
在 MVC 3 中,他们添加了我一直在使用的依赖解析器。在回答某人对您发表评论的问题时,您应该使用 Ninject MVC 3 插件。 所以我的问题是为什么要使用它而不是内置的?如果这是要走的路,你如
我是 ASP.NET MVC 的新手,我正在寻找最不痛苦的方法来设置全局错误处理、日志记录和报告(通过电子邮件)。仅供引用,我的 ASP.NET MVC 应用程序在 Azure 中作为 Web 角色托
何时使用 MVC View 页面和 MVC View 内容页面?它们有什么区别? 最佳答案 **MVC View Page 用于创建页面,MVC VewP Content Page 用于创建页面并指定
我是一名优秀的程序员,十分优秀!