Maven+Struts2+MyBatis+Spring搭建教程

阅读更多

教程目标

在MyEclipse中搭建Struts2+MyBatis+Spring环境,用Maven管理项目,利用mybatis-gernerator插件生成部分代码

附带目标:

struts2的自定义拦截器和国际化,mybatis-spring自动装配Dao,mybatis-gernerator的配置

 

先贴下搭建成功后项目的结构图,方便理解:

 


Maven+Struts2+MyBatis+Spring搭建教程_第1张图片

1、新建web project,add maven spport:


Maven+Struts2+MyBatis+Spring搭建教程_第2张图片

2、编辑已经生成的pom.xml:pom文件不是一口气写完的,而是随着添加struts、mybatis和spring等特性以后才逐渐完成的,我在这里就把完成以后的贴在这里了

 

 


	4.0.0
	MybatisSpringStrut2
	MybatisSpringStrut2
	0.0.1-SNAPSHOT
	war
	Mybatis+Spring+Strut2集成示例
	
		
			Sam
			[email protected]
		
	
	
		UTF-8
		
		${basedir}/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.18.jar
		com.mysql.jdbc.Driver
		jdbc:mysql://localhost:3306/test?generateSimpleParameterMetadata=true
		root
		1120
		${basedir}/src/java
		${basedir}/src/config
		${basedir}/src/java
	
		
	
		
			org.glassfish
			bean-validator
			3.0-JBoss-4.0.2
		
		
			org.glassfish
			javax.annotation
			3.0.1
		
		
			org.glassfish
			javax.ejb
			3.0.1
		
		
			org.glassfish
			javax.enterprise.deploy
			3.0.1
		
		
			org.glassfish
			javax.jms
			3.0.1
		
		
			org.glassfish
			javax.management.j2ee
			3.0.1
		
		
			org.eclipse.persistence
			javax.persistence
			2.0.0
		
		
			org.glassfish
			javax.resource
			3.0.1
		
		
			org.glassfish
			javax.security.auth.message
			3.0.1
		
		
			org.glassfish
			javax.security.jacc
			3.0.1
		
		
			org.glassfish
			javax.servlet
			3.0.1
			provided
		
		
			org.glassfish
			javax.servlet.jsp
			3.0.1
			provided
		
		
			org.glassfish
			javax.servlet.jsp.jstl
			3.0.1
		
		
			org.glassfish
			javax.transaction
			3.0.1
		
		
			javax.xml.bind
			jaxb-api-osgi
			2.2.1
		
		
			javax.ws.rs
			jsr311-api
			1.1.1
		
		
			javax.mail
			mail
			1.4.3
		
		
			javax.xml
			webservices-api-osgi
			2.0.1
		
		
			org.jboss.weld
			weld-osgi-bundle
			1.0.1-SP3
		
		
			log4j
			log4j
			1.2.15
		
		
			mysql
			mysql-connector-java
			5.1.18
		
		
			org.mybatis
			mybatis
			3.0.6
		
		
			org.mybatis
			mybatis-spring
			1.0.2
		
		
			xerces
			xmlParserAPIs
			2.6.2
		
		
			dom4j
			dom4j
			1.6.1
		
		
			com.sun.mail
			pop3
			1.4.4
		
		
			com.sun.mail
			smtp
			1.4.4
		
		
			cglib
			cglib
			2.2.2
			jar
		
		
			org.apache.struts
			struts2-core
			2.2.3.1
		
		
			org.apache.struts
			struts2-json-plugin
			2.2.3.1
		
		
			org.apache.struts
			struts2-config-browser-plugin
			2.2.3.1
		
		
			javax.servlet
			servlet-api
			2.5
			provided
		
		
			javax.servlet.jsp
			jsp-api
			2.1
			provided
		
		
			org.apache.struts
			struts2-spring-plugin
			2.2.3.1
		
		
			commons-logging
			commons-logging
			1.1.1
		
		
			commons-dbcp
			commons-dbcp
			1.4
		
		
			c3p0
			c3p0
			0.9.1.2
		
		
			org.springframework
			spring-core
			3.0.6.RELEASE
		
		
			org.springframework
			spring-web
			3.0.6.RELEASE
		
		
			org.springframework
			spring-jdbc
			3.0.6.RELEASE
		
		
			org.springframework
			spring-beans
			3.0.6.RELEASE
		
		
			org.springframework
			spring-context
			3.0.6.RELEASE
		
		
			org.springframework
			spring-tx
			3.0.6.RELEASE
		
		
			org.springframework
			spring-asm
			3.0.6.RELEASE
		
		
			org.springframework
			spring-aop
			3.0.6.RELEASE
		
		
			org.springframework
			spring-expression
			3.0.6.RELEASE
		
		
			commons-pool
			commons-pool
			1.5.6
		
	
	
		
		${basedir}/src/java,${basedir}/src/config
		
		${basedir}/WebRoot/WEB-INF/classes
		
		
			
				${project.build.outputDirectory}
				${project.build.sourceDirectory}
				
					**/*.java
				
			
			
				${project.build.sourceDirectory}
				
					**/*.xml,**/*.properties
				
			
		
		
		${project.artifactId}-${project.version}
		
		
			
			
				org.apache.maven.plugins
				maven-war-plugin
				2.1.1
				
					${basedir}/WebRoot
					${basedir}/WebRoot
					${basedir}/target/output
				
			
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				2.3.2
				
					1.6
					1.6
				
			
			
			
				org.mybatis.generator
				mybatis-generator-maven-plugin
				1.3.1
				
					${basedir}/src/config/mybatis-generator.xml
					true
					true
				
				
					
						Generate MyBatis Artifacts
						
							generate
						
					
				
			
		
	
 

 

 

3、编辑web.xml:

 

 

 



  MybatisSpringStrut2	
  
	
		struts2
		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	

	
		struts2
		/*
	

	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
	
		contextConfigLocation
		classpath*:spring/applicationContext*.xml
	
	
	
	
		site/index.jsp
	


 

 

4、struts2的配置文件:

 

strutsxml:

 

 



  MybatisSpringStrut2	
  
	
		struts2
		org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
	

	
		struts2
		/*
	

	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
	
		contextConfigLocation
		classpath*:spring/applicationContext*.xml
	
	
	
	
		site/index.jsp
	


 

 

struts/struts-admin.xml:

 

 






	

	
		
		
			/admin/login.jsp
		

		
			/admin/main.jsp
		
		
		
		
			
			/admin/main.jsp
		
		
		
		
			/admin/main.jsp
		

	

 

 

struts/struts-index.xml:

 

 






	

	

		
			/site/index.jsp
		
		
		
			index
		

	
 

 

 

5、spring的配置文件,位于src/config/spring:

 

applicationContext.xml:

 

 

 




	
	
	
	
	
		
		
		
		
	

	
	
		
		
		
		
		
		
		
		
	

	
	
		
		
		
	

	
	
		
	

 

applicationContextDao.xml:

 

 




	
	

	
	
		
	

 

applicationContextService.xml:

 

 

 



        
	
    	
		
	

 

 

applicationContextActions.xml:

 

 




	
		
	

 

 

6、mybatis的配置文件:mybatis-config.xml,这个文件在我们现在这个环境中其实可以不用,除非你一定要定义一些

typeAliases或者settings;项目中实际要用到的映射文件会由插件生成,由mybatis-spring根据你给的路径自动寻找装配:

 

 

mybatis-config.xml:

 

 

 





	
		
		
		
	
	
	
	
		
	
	

 

 

7、代码生成插件的配置文件:mybatis-generator.xml

 

 






	
	
	
	
		
		

		
		
			
		

		
		
			
			
		

		
		
			
		
		
		
		
			
		

		
		

 

完成上面那些配置文件以后,基本上配置上就完成了,下面的工作就是java代码的完成了,具体的示例代码见附件,必要的地方我都做了注释。

 

看看实际运行情况:

1.国际化:


Maven+Struts2+MyBatis+Spring搭建教程_第3张图片


Maven+Struts2+MyBatis+Spring搭建教程_第4张图片

 

2:利用插件生成的代码,完成数据的增删改查:

 

/**
	 * 测试数据的增删改查
	 * @return
	 * @throws JSONException
	 */
	public String testCrud() throws JSONException{
		String b = "
"; String response = "测试数据的增删改查:
"; //查 NewsVOExample example = new NewsVOExample(); example.or().andIdIsNotNull(); List list = newsService.selectByExample(example); response += "原始数据:
"; for (NewsVO newsVO : list) { response += JSONUtil.serialize(newsVO)+b; } //增 NewsVO record = new NewsVO(); record.setTitle("这是我新增的一个新闻"); record.setContent("2012其实真的快到了"); record.setSource("火星资讯"); record.setDate(new Date()); int result = newsService.insert(record); response += result==1?"插入新数据成功":"插入数据失败"+b; list = newsService.selectByExample(example); response += "插入数据后:"+b; for (NewsVO newsVO : list) { response += JSONUtil.serialize(newsVO)+b; } //改 record = newsService.selectByExample(example).get(0); response += "修改前的数据:"+b+JSONUtil.serialize(record); example = new NewsVOExample(); example.or().andTitleEqualTo(record.getTitle()); int originId = record.getId(); record.setTitle("这是我修改后的标题"); result = newsService.updateByExample(record, example); response += result==1?"修改成功":"修改失败"+b; example.or().andTitleEqualTo(record.getTitle()); record = newsService.selectByPrimaryKey(originId); response +="修改后的数据:"+b+JSONUtil.serialize(record)+b; //删 example.or().andTitleEqualTo("这是我新增的一个新闻"); newsService.deleteByExample(example); example.or().andIdIsNotNull(); list = newsService.selectByExample(example); response += "删除数据后:"+b; for (NewsVO newsVO : list) { response += JSONUtil.serialize(newsVO)+b; } write(response); return SUCCESS; }
 


Maven+Struts2+MyBatis+Spring搭建教程_第5张图片

  • Maven+Struts2+MyBatis+Spring搭建教程_第6张图片
  • 大小: 22.2 KB
  • Maven+Struts2+MyBatis+Spring搭建教程_第7张图片
  • 大小: 21.6 KB
  • Maven+Struts2+MyBatis+Spring搭建教程_第8张图片
  • 大小: 47.4 KB
  • Maven+Struts2+MyBatis+Spring搭建教程_第9张图片
  • 大小: 44.8 KB
  • Maven+Struts2+MyBatis+Spring搭建教程_第10张图片
  • 大小: 62.8 KB
  • MybatisSpringStrut2.zip (832.2 KB)
  • 下载次数: 1659
  • 查看图片附件

你可能感兴趣的:(Maven+Struts2+MyBatis+Spring搭建教程)