MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目

最近接到一个项目,决定拿maven构建项目,框架用SSM,结果在环境搭建上就遇到了不少麻烦,就写这篇博客记录一下,防止以后忘记。

声明几点:1. 这篇博客默认各位已经装好MyEclipse和Maven2.这篇博客里的各种配置文件都只配置了最基本的东西,SSM整合有很多可选的配置,在用某个框架的某些功能的时候可能因为某些配置没有配而出错这是正常现象。。。好了,废话到此为止,下面正式开始搭建项目!


第一步,创建Maven项目

1. 在MyEclipse的项目列表中右键new,选MavenProject,点next
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第1张图片

2.继续点next
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第2张图片

3.在filter下面的列表中选maven-archetype-webapp,点next
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第3张图片

4.填写groupId和artifactId,这里我个人理解的groupId就是你所在的组织的名称,一般是公司域名反写,artifiactId就是本项目的名称,而Version可以不改。
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第4张图片

5.点finish,等待片刻,如果不常使用maven,等的时间可能更长一点。等MyEclipse进度条消失后,看项目列表里你刚建的项目,如果项目没有报错,那么恭喜你,一个maven项目就创建完成了。(如果报错,可能是你maven和MyEclipse整合有问题,这也是个很坑的事,但不在这篇博客的讨论范围内,可以找找专门写MyEclipse和Maven整合的博客看看)我的项目结构如下:
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第5张图片

第二步、修改项目结构,引入框架依赖包
1. 为了项目结构更清晰,我们新建源码包src/main/java,然后在webapp下创建文件夹jsp,修改后的项目结构如下图:
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第6张图片
规定下我们的包的作用:
src/main/resources下放各种配置文件
src/main/java下放源代码
webapp/jsp下放jsp页面

2. 在pom.xml文件中引入三大框架的依赖包

		
		3.1.1.RELEASE
		
		3.2.8
		
		1.7.12
		1.2.17
	

	
		
			junit
			junit
			4.11
			test
		

		
		
			javax
			javaee-api
			6.0
		

		
		
			org.springframework
			spring-test
			${spring.version}
		
		
			org.springframework
			spring-core
			${spring.version}
		
		
			org.springframework
			spring-oxm
			${spring.version}
		
		
			org.springframework
			spring-tx
			${spring.version}
		
		
			org.springframework
			spring-jdbc
			${spring.version}
		
		
			org.springframework
			spring-aop
			${spring.version}
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
			org.springframework
			spring-context-support
			${spring.version}
		
		
			org.springframework
			spring-expression
			${spring.version}
		
		
			org.springframework
			spring-orm
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		
		
		
		
			org.mybatis
			mybatis
			${mybatis.version}
		
		
			org.mybatis
			mybatis-spring
			1.2.2
		
		
		
		
			mysql
			mysql-connector-java
			5.1.35
		
		
		
			commons-dbcp
			commons-dbcp
			1.4
		
		
		
			jstl
			jstl
			1.2
		
		
		
			log4j
			log4j
			${log4j.version}
		
		
			org.slf4j
			slf4j-api
			${slf4j.version}
		
		
			org.slf4j
			slf4j-log4j12
			${slf4j.version}
		
		
		
		
		
			com.alibaba
			fastjson
			1.2.6
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
		
			commons-fileupload
			commons-fileupload
			1.3.1
		
		
			commons-io
			commons-io
			2.4
		
		
			commons-codec
			commons-codec
			1.10
		
	
注意:
1.上面的pom文件是我从网上下载的,里面的依赖包是不是全都必须我也不确定,但应该是不少,既然如此,多几个也无所谓了。。。
2.修改pom文件保存后,MyEclipse会自动开始下载依赖的jar包,所以要保证你的电脑是联网状态,而且网速不能太差,不然会等很长时间。。。

如果下载完成后,羡慕没有报错,那么在此恭喜你,依赖包导入完成了!

第三步、配置文件

终于到了关键的地方了,那就是框架整合。
首先,我们在src/main/resources中创建几个配置文件:
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第7张图片
其中
jdbc.properties用于配置连接数据库相关信息
log4j.properties用于配置log4j相关配置信息
spring.xml用于配置spring和spring管理mybatis的相关配置
springmvc.xml用于配置springmvc相关信息
SqlMapConfig.xml用于配置mybatis相关信息。

jdbc.properties

	我这里只配置了基本信息,数据库连接还有很多可选配置,如连接池初始连接数量,增加连接数量等,这些都有默认值,不一定要配。

这里不要照搬我的代码,需要你配置自己的数据库连接信息,如用户名、密码、数据库名等

log4j.properties是我从网上找的一份,配置的比较多,相应的调试时打印的信息也比较多,便于排错。下面是全部代码:

log4j.rootLogger=DEBUG, stdout, fileout  , logfile 
  
log4j.logger.com.fiscal = DEBUG  
log4j.logger.com.system = DEBUG  
  
log4j.logger.com.ibatis = DEBUG  
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG  
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG  
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG  
log4j.logger.java.sql.Connection = DEBUG  
log4j.logger.java.sql.Statement = DEBUG  
log4j.logger.java.sql.PreparedStatement = DEBUG, fileout   
log4j.logger.java.sql.ResultSet = DEBUG  
  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=D:/zpssoa.log
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

spring.xml配置如下,里面有注释,有spring和mybatis经验的同学应该能看懂,就不在这里介绍了




	

	
	

	
	
		
	
	
	
		
		
		
		
		
		
	

	
	
		
		
		
		
	


	
	
		
		
		
		

	

 

springmvc.xml同上,相对来说更简单,因为这里只配置了springmvc的信息,没有整合相关的东西,只要学过springnvc的同学应该都能看懂,这里我们也是只配置了最基本的东西,如果个人有其他需要,记得配置相关信息哦。



	
	

	
	
	
		
		
	

	
	
		
			
				
			
		
	


 

SqlMapConfig.xml:由于在spring中配置了mapper扫描,所以不需要再在这里配置mapper了,但我们还是留下来这个配置文件,以防后面要对mybatis做配置。尽管现在这个文件中什么也没有。







第四步、web.xml配置


在web.xml中需要配置spring的核心过滤器和springmvc的核心控制器,为了方便还可以加上一个编码过滤器。

  
  
      
      
        /index.jsp  
      
      
     
      
         contextConfigLocation  
        classpath:spring.xml  
      
      
        org.springframework.web.context.ContextLoaderListener  
      
      
      
      
        encodingFilter  
        org.springframework.web.filter.CharacterEncodingFilter  
        
        true  
          
            encoding  
            
            UTF-8  
          
      
      
        encodingFilter  
        /*  
      
      
      
      
        SpringMVC  
        org.springframework.web.servlet.DispatcherServlet  
          
            contextConfigLocation  
            classpath:springmvc.xml  
          
      
      
        SpringMVC  
        *.action  
      
      

好了,到这里框架整合基本完成了,接下来我们做个测试。

第五步、测试

1.在src/main/java下建包:com.zlw.test
2.在包下创建entity,mapper,service,action四个包
3.在entity包下创建User.java作为实体类,为了简单,只给两个属性:username和id
package com.zlw.test.entity;

public class User {

	private int id;
	private String username;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUserame() {
		return username;
	}

	public void setUserame(String name) {
		this.username = name;
	}

}

4.在mapper包下创建UserMapper.java作为dao层接口。

package com.zlw.test.mapper;

public interface UserMapper {

	String findUserById(int id);

}

5.在mapper包下创建UserMapper.xml,作为mybatis动态生成dao层实现类要用到的配置文件。



    
  
      
     
    

6.在service包下创建UserService.java,作为service层实现类(正式开发中应该把接口和实现类分开,这里只是为了方便,没有写接口;另外,我们全篇使用注解形式开发,为了以后尽可能少的修改配置文件)
package com.zlw.test.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.zlw.test.entity.User;
import com.zlw.test.mapper.UserMapper;

@Service
public class UserService {

	@Resource
	private UserMapper userMapper;

	public String findUserById(int id) {
		return userMapper.findUserById(id);

	}

}

7.在action包下创建UserAction.java文件,作为控制器
package com.zlw.test.action;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zlw.test.entity.User;
import com.zlw.test.service.UserService;

@Controller
@RequestMapping("/user")
public class UserAction {

	@Resource
	private UserService userService;

	@RequestMapping("/findUserById")
	public String findUserById(int id, Model model) {
		String username = userService.findUserById(id);
		if (username != null) {
			model.addAttribute("username", username);
		} else {
			model.addAttribute("username", "未找到");
		}
		return "test";
	}

}

8.将index.jsp内容替换成下面内容
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>





测试页面






	

9.在webapp/jsp下新建jsp页面,叫test.jsp,内容如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>





测试页面




	成功 名字是:${username }




9.在你配置的数据库中建表,插入一条记录,对我来说,就是在本机的MySQL数据库中建立一个叫foodtest的库,在里面创建叫user的表,插入一条记录是id=1,username=zlw
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第8张图片
9.把项目部署到服务器上,我用的是Tomcat6.x,在浏览器中访问:http://localhost:8080/TestProject/index.jsp,出现如下页面:
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第9张图片
10.在输入框中输入1,点击按钮,会跳转到结果页面,并显示根据id查出的username,如图:
MyEclipse+Maven创建SSM(springMVC+spring+mybatis)项目_第10张图片

至此,SSM框架整合成功,可以开始愉快的开发之旅了,再也不用管什么配置出错的问题了!

后记:
在第一次整合的时候,在网上找了很多文章看,虽然都差不多,但总有些不同,经常会有不知道该照谁的做的情况,好不容易决定按一篇文章说的做,结果有些步骤跟文章上的不一样,也是很尴尬,最后一边查资料一边自己试着做,总算整合出了最基本的一个项目,由于写这篇博客的时间离刚开始搭建的时间有点长了,很多过程中的细节问题都想不起来了,可能有些人看我这篇文章就像我看其他人的文章一样,出现我做没问题,他照着做却报错的情况。的确,导致这种情况的原因可能有:MyEclipse版本、Maven版本、MyEclipse和Maven整合的方法,电脑环境等各种因素,谁也不能保证我不出问题,大家都不出问题,因此,一篇博客很难概括过程中出现的各种问题,需要大家继续去查专门介绍解决问题的文章,再次,祝大家好运!


你可能感兴趣的:(java)