spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程

一、准备工作
开始之前,先参考上一篇: 
struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明
思路都是一样的,只不过把struts2替换成了spring mvc 

二、不同的地方
工程目录及jar包:

 action包改成controller;
 删除struts2 jar包,添加spring mvc包(已有的话,不需添加);

    spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程_第1张图片

spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程_第2张图片

web.xml配置: 

跟之前不同的地方是把struts2的过滤器替换成了一个servlet,主要目的是路由url,交给spring mvc处理; 



 SSH

 
 contextConfigLocation
 classpath:applicationContext.xml
 
 
 org.springframework.web.context.ContextLoaderListener
 

 
 index.jsp
 


 
 springmvc
 org.springframework.web.servlet.DispatcherServlet
 
  contextConfigLocation
  classpath:springmvc-servlet.xml
 
 1
 
 
 springmvc
 *.do
 


 

applicationContext.xml配置:
 不同的地方主要是配置自动扫描的时候,要排除@Controller组件,这些bean是由spring mvc 去生成的;
 其它配置跟前一篇一样; 



 
   
 
 
 
 

 
 
 
 
 
 
 
  
  
  
  
  
  
  
 
 
 

 
 
 

 
  
  org.hibernate.dialect.MySQLDialect
  true
  update
  10
  thread
  true
  org.hibernate.cache.ehcache.EhCacheRegionFactory
  true
  ehcache.xml
  
 
  
   
  classpath:ssh/model/User.hbm.xml 
   
  
 
 
 
 
 
 
 
 
 
 
 
  
  
  
  
 
 
 

 
 
 
 
 
 
 

 
 
 
 
 
  
  
  
 
 
 


  

springmvc-servlet.xml配置:
 配置自动扫描ssh.controller包下的@Controller,这里要恢复applicationContext.xml中配置的exclude-filter;
 配置视图解析器,有很多解析器,这里以InternalResourceViewResolver为例; 



 
 
 
 
  
 
 
 
 
 
  /WEB-INF/jsp/
 
 
  .jsp
 
 
 
 

编写controller:
 由于使用spring mvc替换struts2,也就没有了action包了,删除,并新建controller包,在包下新建UserController类;
 @RequestMapping:映射url;
 @ResponseBody:内容直接作为body返回;

 UserController.java 

package ssh.controller;

import java.io.PrintWriter;
import java.util.List;

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

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

import ssh.aop.AopTest;
import ssh.model.User;
import ssh.service.UserService;

import com.google.gson.Gson;

@Controller
@RequestMapping("/user")
public class UserController {
 Logger logger = Logger.getLogger(UserController.class);
 @Resource
 private UserService userService;
 @Resource
 private AopTest aopTest;
 
 @RequestMapping(value="/addUser")
 @ResponseBody
 public void addUser(HttpServletRequest request, HttpServletResponse response){
 PrintWriter out = null;
 try{
  response.setContentType("text/html;charset=UTF-8");
  String account = request.getParameter("account");
  String name = request.getParameter("name");
  String address = request.getParameter("address"); 
  User user = new User();
  user.setAccount(account);
  user.setAddress(address);
  user.setName(name);
  userService.add(user);
  out = response.getWriter();
  out.write(new Gson().toJson("success"));
 }catch(Exception e){
  e.printStackTrace();
  logger.error(e.getMessage());
  if(out != null)
  out.write(new Gson().toJson("fail"));
 }finally{
  out.flush();
  out.close();
 }
 
 }
 
 @RequestMapping(value="/queryUser")
 @ResponseBody
 public void queryAllUser(HttpServletRequest request, HttpServletResponse response){
 PrintWriter out = null;
 
 aopTest.test1();
 aopTest.test2();
 
 try {

  response.setContentType("text/html;charset=UTF-8");
 
  Gson gson = new Gson();
  List userList= userService.queryAllUser();
  String gsonStr = gson.toJson(userList);
  
  out = response.getWriter();
  out.write(gsonStr);
 } catch (Exception e) {
  e.printStackTrace();
  logger.error(e.getMessage());
  if(out != null)
  out.write(new Gson().toJson("fail"));
 }finally{
  out.flush();
  out.close();
 }
 }
} 

三、运行程序
运行程序,添加用户、查询用户功能正常;
另外二级缓存也正常工作,第二次查询已经没有操作数据库了;

spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程_第3张图片

@author   风一样的码农

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(spring mvc4.1.6 spring4.1.6 hibernate4.3.11 mysql5.5.25开发环境搭建图文教程)