博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
阅读量:6705 次
发布时间:2019-06-25

本文共 12435 字,大约阅读时间需要 41 分钟。

 

  做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框架来开发项目,而这些框架一般不是单独使用的,经常是Struts2+Spring3+Hibernate、SpringMVC+Spring+Hibernate、SpringMVC+Spring+Mybatis这几种组合中的一种,也就是多个框架配合起来使用。今天来总结一下如何使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境。

一、建立Maven工程

第一步:

  

第二步:

  

第三步:

  

  创建好的项目如下图所示:

  

第四步:

  

  注意:这里的JDK要选择默认的,这样别人在使用的时候,如何JDk不一致的话也不会出错,如下图所示:

  

第五步:

  创建Maven标准目录     src/main/java     src/main/resources     src/test/java     src/test/resources

  

第六步:  

  发布项目:Maven install     

  清除编译过的项目:Maven clean

  

  Maven install命令执行结果如下:

  

  OK,Maven工程创建成功!   

二、搭建Spring3开发环境

2.1、下载Spring3需要的jar包

    1.spring-core

    2.spring-context

    3.spring-jdbc

    4.spring-beans

    5.spring-web

    6.spring-expression

    7.spring-orm

  在pom.xml中编写Spring3需要的包,maven会自动下载这些包以及相关的依赖jar包。

1 
2
3
org.springframework
4
spring-core
5
3.1.2.RELEASE
6
7
8
org.springframework
9
spring-context
10
3.1.2.RELEASE
11
12
13
org.springframework
14
spring-jdbc
15
3.1.2.RELEASE
16
17
18
org.springframework
19
spring-beans
20
3.1.2.RELEASE
21
22
23
org.springframework
24
spring-web
25
3.1.2.RELEASE
26
27
28
org.springframework
29
spring-expression
30
3.1.2.RELEASE
31
32
33
org.springframework
34
spring-orm
35
3.1.2.RELEASE
36

2.2、编写Spring配置文件

  在src/main/resources目录下创建一个spring.xml文件,如下图所示:

  

  spring.xml文件的内容如下:

1 
2
10 11
12
13 14
15
16 17

  在src/main/resources目录下创建一个config.properties文件,如下图所示:

  

  config.properties文件主要是用来编写一些系统的配置信息,例如数据库连接信息,config.properties文件中的内容暂时先不编写,等整合到Hibernate时再编写具体的数据库连接信息。

2.3、编写单元测试

  首先,在src/main/java中创建me.gacl.service包,在包中编写一个 UserServiceI 接口,如下图所示:

  

  代码如下:

1 package me.gacl.service; 2  3 /** 4 * 测试 5 * @author gacl 6 * 7 */ 8 public interface UserServiceI { 9 10 /** 11 * 测试方法 12 */ 13 void test(); 14 }

  然后,在src/main/java中创建me.gacl.service.impl包,在包中编写UserServiceImpl实现类,如下图所示:

  

  代码如下:

1 package me.gacl.service.impl; 2  3 import org.springframework.stereotype.Service; 4 5 import me.gacl.service.UserServiceI; 6 //使用Spring提供的@Service注解将UserServiceImpl标注为一个Service 7 @Service("userService") 8 public class UserServiceImpl implements UserServiceI { 9 10 @Override 11 public void test() { 12 System.out.println("Hello World!"); 13 } 14 15 }

  进行单元测试时需要使用到Junit,所以需要在pom.xml文件中添加Junit的jar包描述,如下:

1         
2
3
junit
4
junit
5
4.12
6
test
7

  <scope>test</scope>这里的test表示测试时编译src/main/test文件夹中的文件,等发布的时候不编译。 最后,在src/main/test中创建me.gacl.test包,在包中编写 TestSpring类,如下图所示:

  

代码如下:

1 package me.gacl.test; 2  3 import me.gacl.service.UserServiceI; 4 5 import org.junit.Test; 6 import org.springframework.context.ApplicationContext; 7 import org.springframework.context.support.ClassPathXmlApplicationContext; 8 9 public class TestSpring { 10 11 @Test 12 public void test(){ 13 //通过spring.xml配置文件创建Spring的应用程序上下文环境 14 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml"); 15 //从Spring的IOC容器中获取bean对象 16 UserServiceI userService = (UserServiceI) ac.getBean("userService"); 17 //执行测试方法 18 userService.test(); 19 } 20 }

  JUnit Test运行,结果如图所示:

  

2.4、在web.xml中配置Spring监听器

1 
2
3
org.springframework.web.context.ContextLoaderListener
4
5
6
7
contextConfigLocation
8
classpath:spring.xml
9

  在tomcat服务器中进行测试,先执行【Maven install】命令发布项目,然后将SSHE项目部署到tomcat服务器,最后启动tomcat服务器

  

  tomcat服务器启动的过程中没有出现报错,输入地址:http://localhost:8080/SSHE/ 能够正常进行访问,就说明Spring3的开发环境搭建成功,如下图所示:

  

  测试通过,Spring3开发环境搭建成功!

三、搭建Struts2开发环境并整合Spring3

3.1、下载Struts2需要的jar包

  1.strtus2-core   2.struts2-spring-plugin(struts2和Spring整合时需要使用到的插件)   3.struts2-convention-plugin(使用了这个插件之后,就可以采用注解的方式配置Struts的Action,免去了在struts.xml中的繁琐配置项)

  4.struts2-config-browser-plugin(config-browser-plugin插件不是必须的,但是使用了这个插件之后,就可以很方便的浏览项目中的所有action及其与 jsp view的映射)

  在pom.xml文件中编写Struts2所需要的jar包,Maven会自动下载这些包

1 
2
3
org.apache.struts
4
struts2-core
5
2.3.16
6
16
17
18
19
org.apache.struts
20
struts2-convention-plugin
21
2.3.20
22
23
24
25
org.apache.struts
26
struts2-config-browser-plugin
27
2.3.20
28
29
30
31
org.apache.struts
32
struts2-spring-plugin
33
2.3.4.1
34

  

3.2、编写Struts.xml配置文件

  在src/main/resources目录下创建一个struts.xml文件,如下图所示:

  

  struts.xml文件中的内容如下:

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

3.3、在web.xml中配置Struts2的过滤器

1 
2
3
struts2
4
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
5
6
7
8
struts2
9
*.action
10

 3.4、编写测试

  首先,在src/main/java中创建me.gacl.action包,在包中编写一个 TestAction类,如下图所示:

  

  代码如下:

1 package me.gacl.action; 2  3 import me.gacl.service.UserServiceI; 4 5 import org.apache.struts2.convention.annotation.Action; 6 import org.apache.struts2.convention.annotation.Namespace; 7 import org.apache.struts2.convention.annotation.ParentPackage; 8 import org.springframework.beans.factory.annotation.Autowired; 9 10 @ParentPackage("basePackage") 11 @Action(value="strust2Test")//使用convention-plugin插件提供的@Action注解将一个普通java类标注为一个可以处理用户请求的Action,Action的名字为struts2Test 12 @Namespace("/")//使用convention-plugin插件提供的@Namespace注解为这个Action指定一个命名空间 13 public class TestAction { 14 15 /** 16 * 注入userService 17 */ 18 @Autowired 19 private UserServiceI userService; 20 21 /** 22 * http://localhost:8080/SSHE/strust2Test!test.action 23 * MethodName: test 24 * Description: 25 * @author xudp 26 */ 27 public void test(){ 28 System.out.println("进入TestAction"); 29 userService.test(); 30 } 31 }

  这里使用@Autowired注解将userService注入到UserAction中。

  测试Struts2的开发环境是否搭建成功,先执行【Maven install】操作,然后部署到tomcat服务器,最后启动tomcat服务器运行,

  输入访问地址:http://localhost:8080/SSHE/strust2Test!test.action,访问结果如下:

  

  测试通过,Struts2的开发环境搭建并整合Spring成功!这里提一下遇到的问题,我执行完Maven install命令之后,重新发布到tomcat服务器运行,第一次运行时出现了找不到action的404错误,后来就先执行Maven clean,然后clean一下项目,再执行Maven install命令重新编译项目,然后再发布到tomcat服务器中运行,这次就可以正常访问到action了,使用Maven总是会遇到一些奇怪的问题,好在凭借着一些平时积累的解决问题的经验把问题解决了。

四、搭建Hibernate4开发环境并整合Spring3

4.1、下载Hibernate4需要的jar包

  1.hibernate-core

  在pom.xml文件中编写Hibernate4所需要的jar包,Maven会自动下载这些包。

1 
2
3
org.hibernate
4
hibernate-core
5
4.1.7.Final
6

  

  注意:一定要排除掉Struts2中的javassist,否则就冲突了。

4.2、添加数据库驱动jar包

  我们知道,Hibernate是用于和数据库交互的,应用系统所有的CRUD操作都要通过Hibernate来完成。既然要连接数据库,那么就要使用到相关的数据库驱动,所以需要加入数据库驱动的jar包,根据自身项目使用的数据库在pom.xml文件中编写相应的数据库驱动jar:

  MySQL数据库驱动jar:

1 
2
3
mysql
4
mysql-connector-java
5
5.1.34
6

  SQLServer数据库驱动jar:

1 
2
3
net.sourceforge.jtds
4
jtds
5
1.3.1
6

  这里要说一下使用Maven管理Oracle JDBC驱动的问题了,正常情况下,Maven在下载 oracle数据库驱动时会出错,如下图所示:

  

  这是由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。

  解决办法:先从网上下载Oracle的驱动包,然后通过Maven命令放到本地库中去:

  安装命令:

mvn install:install-file -Dfile={Path/to/your/ojdbc.jar} -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar

  例如把位于F:\oracle驱动\ojdbc6.jar添加到本地仓库中

  

  执行命令:

mvn install:install-file -Dfile=F:/oracle驱动/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar

  如下图所示:   

  然后在pom.xml文件中编写ojdbc6.jar包的<dependency>信息,如下所示:

1 
2
3
com.oracle
4
ojdbc6
5
11.2.0.1.0
6

  由于我们已经将ojdbc6.jar包加入到本地仓库中了,因此这次可以正常使用针对Oracle数据库的驱动包了。如下图所示:

  

4.3、添加数据库连接池jar包

  在平时开发中,我们一般都会使用数据库连接池,应用系统初始化时,由数据库连接池向数据库申请一定数量的数据库连接,然后放到一个连接池中,当需要操作数据库时,就从数据库连接池中取出一个数据库连接,通过从连接池中获取到的数据库连接对象连接上数据库,然后进行CRUD操作,关于数据库连接池的选择,常用的有DBCP,C3P0和Druid,这里我们使用Druid作为我们的数据库连接池。这三种连接池各自有各自的特点,自己熟悉哪个就用哪个,萝卜白菜,各有所爱。

  在pom.xml文件中编写Druid的jar包,Maven会自动下载,如下:

1 
2
3
com.alibaba
4
druid
5
1.0.12
6

 4.4、添加aspectjweaver包

  使用Spring的aop时需要使用到aspectjweaver包,所以需要添加aspectjweaver包,在pom.xml文件中添加aspectjweaver的jar包,Maven会自动下载,如下:

1 
2
3
org.aspectj
4
aspectjweaver
5
1.8.5
6

4.5、编写连接数据库的配置信息

  之前我们在src/main/resources目录下创建了一个config.properties文件,里面的内容是空的,现在我们就在这个config.properties文件中编写连接数据库需要使用到的相关信息,如下所示:

1 #hibernate.dialect=org.hibernate.dialect.OracleDialect 2 #driverClassName=oracle.jdbc.driver.OracleDriver 3 #validationQuery=SELECT 1 FROM DUAL 4 #jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl 5 #jdbc_username=gacl 6 #jdbc_password=xdp 7 8 hibernate.dialect=org.hibernate.dialect.MySQLDialect 9 driverClassName=com.mysql.jdbc.Driver 10 validationQuery=SELECT 1 11 jdbc_url=jdbc:mysql://localhost:3306/sshe?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull 12 jdbc_username=root 13 jdbc_password=XDP 14 15 #hibernate.dialect=org.hibernate.dialect.SQLServerDialect 16 #driverClassName=net.sourceforge.jtds.jdbc.Driver 17 #validationQuery=SELECT 1 18 #jdbc_url=jdbc:jtds:sqlserver://127.0.0.1:1433/sshe 19 #jdbc_username=sa 20 #jdbc_password=123456 21 22 #jndiName=java:comp/env/dataSourceName 23 24 hibernate.hbm2ddl.auto=update 25 hibernate.show_sql=true 26 hibernate.format_sql=true

4.6、编写Hibernate与Spring整合的配置文件

  在src/main/resources目录下新建一个spring-hibernate.xml文件,如下图所示:

  

  spring-hibernate.xml文件的内容如下:

1 
2
10 11
12
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 <

转载地址:http://njflo.baihongyu.com/

你可能感兴趣的文章
【go密码学】-数字签名
查看>>
代码重构之消除分支结构
查看>>
ingress controller学习记录
查看>>
328. Odd Even Linked List
查看>>
redis学习笔记(三)--Redis的功能
查看>>
MySQL性能调优与架构设计(二)—— MySQL存储引擎简介
查看>>
NeurIPS 2018 中的贝叶斯研究
查看>>
Android 音视频入门之音频采集、编码、播放
查看>>
python并发模块之concurrent.futures(一)
查看>>
1月10日云栖精选夜读 | 12亿行代码,阿里巴巴这一年的技术报告和梦想报告 ...
查看>>
Spring4定时任务配置
查看>>
ApiPost自动化测试基础之:接口参数依赖的情景处理
查看>>
短视频程序的魅力,你为什么喜欢抖音?知乎大神的回答
查看>>
智能手机背后的利益链:赚了满钵的供应商,提心吊胆的新技术者
查看>>
C语言参考库
查看>>
Spring Boot 项目搭建
查看>>
福佑卡车获D轮融资1.7亿美元,中银集团投资有限公司、经纬中国领投
查看>>
全球第一辆商用自动驾驶卡车即将在瑞典上路!
查看>>
云解析DNS“免费版”与“付费版”的功能对比!新手引导
查看>>
Java Spring Data Redis实战与配置参数详解 application.properties
查看>>