【Maven】通过Maven新建一个webapp项目(SSM)

前言:

上一章配置好eclipse+Maven环境后,此处接着写创建webapp项目。

一、创建webapp项目。

file/New Maven Project/选择默认存储路径/搜索webapp/输入包名项目名等。

【Maven】通过Maven新建一个webapp项目(SSM)_第1张图片

【Maven】通过Maven新建一个webapp项目(SSM)_第2张图片

MavenApp项目就自动构建成功了。

二、处理两个问题

1、自动构建的项目,此处可能回出现index.jsp报错。通过如下方法解决比较稳妥。

选择项目/右键Properties/

【Maven】通过Maven新建一个webapp项目(SSM)_第3张图片

项目结构如下:

【Maven】通过Maven新建一个webapp项目(SSM)_第4张图片

2、java,test文件夹缺失。

新建Folder--->java,test,test/java。

【Maven】通过Maven新建一个webapp项目(SSM)_第5张图片

构建成功之后,然后通过Maven来写一遍SpringMVC控制器。


三、直接上依赖配置pom.xml(SSM框架)


	4.0.0
	com.haibo
	mvnStudy01
	war
	0.0.1-SNAPSHOT
	mvnStudy01 Maven Webapp
	http://maven.apache.org
	
	
		4.3.3.RELEASE
	

	
		
			junit
			junit
			3.8.1
			test
		
		
		
		
			javax.servlet
			servlet-api
			2.3
			provided
		
		
		
			mysql
			mysql-connector-java
			5.1.38
		
		
		
		
			org.mybatis
			mybatis
			3.2.5
		
		
		
		
			log4j
			log4j
			1.2.17
		
		
		
		
			org.springframework
			spring-core
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework
			spring-oxm
			${spring.version}
		
		
			org.springframework
			spring-tx
			${spring.version}
		
		
			org.springframework
			spring-jdbc
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		
		
			org.springframework
			spring-aop
			${spring.version}
		
		
			org.springframework
			spring-context-support
			${spring.version}
		
		
			org.springframework
			spring-test
			${spring.version}
		
		
		
		
			com.mchange
			c3p0
			0.9.2.1
		
		
		
		
			org.mybatis
			mybatis-spring
			1.3.0
		
		
		
			jstl
			jstl
			1.2
		
	
	
		mvnStudy01
	

右键项目/Maven/Update Project。更新Jar包。

四、配置SpringMVC

web.xml中添加Servlet:




	Archetype Created Web Application
	
	
		springmvc
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:conf/springmvc-servlet.xml
		
	
	
		springmvc
		*.do
	

具体这个位置classpath:conf/springmvc-servlet.xml其实就是下图这个位置:

【Maven】通过Maven新建一个webapp项目(SSM)_第6张图片

springmvc-servlet.xml如下:



	
	
	
	
		
		
		
		
	
	
	
	
	
	
	

然后扫描一下controller文件夹中的controller组件。

package controller;

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

@Controller
public class HelloMvc {
	@RequestMapping(value="/a.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String hello() {
		return "你好";
	}
}
顺便说一句以上代码加了中文返回处理produces="text/html;charset=UTF-8",则可以正常的显示中文。

五、接入Spring

在web.xml中加入配置:


	
		contextConfigLocation
		classpath:conf/spring.xml
	
	
	
		org.springframework.web.context.ContextLoaderListener
	
然后新建spring.xml文件在路径conf下。(此处同springmvc-servlet.xml位置)



	

在main文件下新建model,如下图

【Maven】通过Maven新建一个webapp项目(SSM)_第7张图片

测试一下,新建一个Person.java接口:

package model;

public interface Person {
	void say();
}
新建一个Person的实现类:

package model;

import org.springframework.stereotype.Component;

@Component
public class Police implements Person {
	public void say() {
		System.out.println("我是警察");
	}
}
修改HelloMvc写一个Controller:

package controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import model.Person;

@Controller
public class HelloMvc {
	@RequestMapping(value="/a.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String hello() {
		return "你好";
	}
	@Autowired
	Person p;
	
	@RequestMapping(value="/b.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String personWho() {
		p.say();
		return "你好,人类";
	}
}

六、接入Mybatis。

1、在conf下加入可用的数据库配置文件。

【Maven】通过Maven新建一个webapp项目(SSM)_第8张图片

2、修改spring.xml中:



	
	
	  
      
          
      
	  
          
          
          
          
          
          
          
          
          
        
          
        
          
        
      
    
      
      
          
          
          
      
    
      
      
          
          
     
    
      
      
          
     

3、配置Maybtis自动生成插件




      
      
        
            
                
                
                
            
            
            
            
            
                
            
            
            
                
                
            
            
            
                
            
            
            
                
            
            
        
右键这个文件,自动在指定位置生成三个类。

【Maven】通过Maven新建一个webapp项目(SSM)_第9张图片
此处遇到问题有两个:

一个是Exception in thread “main” java.lang.RuntimeException: Exception getting JDBC Driver:

通过在generatorConfiguration中添加数据库驱动解决:

 

第二个是自动生成的时候默认的位置指定不对,改成绝对路径即可mvnStudy01/src/main/java。

4、写service用来操作Mybatis操作数据库。

接口:

package service;

import model.Book;

public interface IBookService {
	Book getBookById(String bookId); 
}
实现:

package service;



import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import dao.BookMapper;
import model.Book;

@Service("userService")
public class BookServiceImpl implements IBookService{
	@Resource
	private BookMapper bookDao;
	
	public Book getBookById(String bookId) {
		// TODO Auto-generated method stub
		return this.bookDao.selectByPrimaryKey(bookId);
	}
}

5、写Controller用来请求操作。

package controller;

import java.io.IOException;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import model.Book;
import model.Person;
import service.IBookService;

@Controller
public class HelloMvc {
	@RequestMapping(value="/a.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String hello() {
		return "你好";
	}
	@Autowired
	Person p;
	
	@RequestMapping(value="/b.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String personWho() {
		p.say();
		return "你好,人类";
	}
	
	@Resource  
    private IBookService bookService = null; 
	
	@RequestMapping(value="/c.do",produces="text/html;charset=UTF-8")
	public @ResponseBody String addrShow(){
		return bookService.getBookById("59cc3a7f3ea44b15c1f92ac0").toString();
	}
}
6、不要忘了在spring.xml中添加扫描文件夹:


	
	
	
ok,我自测通过,完成。

源码请去github自行下载。


































你可能感兴趣的:(java)