上一章配置好eclipse+Maven环境后,此处接着写创建webapp项目。
file/New Maven Project/选择默认存储路径/搜索webapp/输入包名项目名等。
MavenApp项目就自动构建成功了。
1、自动构建的项目,此处可能回出现index.jsp报错。通过如下方法解决比较稳妥。
选择项目/右键Properties/
项目结构如下:
2、java,test文件夹缺失。
新建Folder--->java,test,test/java。
构建成功之后,然后通过Maven来写一遍SpringMVC控制器。
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包。
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其实就是下图这个位置:
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",则可以正常的显示中文。
在web.xml中加入配置:
contextConfigLocation
classpath:conf/spring.xml
org.springframework.web.context.ContextLoaderListener
然后新建spring.xml文件在路径conf下。(此处同springmvc-servlet.xml位置)
在main文件下新建model,如下图
测试一下,新建一个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 "你好,人类";
}
}
1、在conf下加入可用的数据库配置文件。
2、修改spring.xml中:
3、配置Maybtis自动生成插件
右键这个文件,自动在指定位置生成三个类。
一个是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);
}
}
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自行下载。