springmvc,reids框架搭建

来源:互联网 发布:河南省大数据谷 编辑:程序博客网 时间:2024/05/20 02:23
1、首先创建


redis.properties

2、修改bean.xml文件配置

3、修改pox.xml的依赖包(注意这里之间版本之间有相互约束,选对版本很重要)

做到以上3步,环境基本就搭建完毕,接下来就是编辑代码了


import java.util.HashMap;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
 
import com.pudp.bae.base.BaseMultiController;
import com.pudp.bae.model.Member;
import com.pudp.bae.service.MemberService;
 
@Controller
@RequestMapping(value = "/member")
public class MemberController extends BaseMultiController {
 
    @Autowired
    private MemberService memberService;
 
    public void setMemberService(MemberService memberService) {
        this.memberService = memberService;
    }
 
    @RequestMapping(value = { "/add""/add.html" }, method = { RequestMethod.GET })
    public ModelAndView add(HttpServletRequest request,
            HttpServletResponse response) {
        Map<String, Object> map = new HashMap<String, Object>();
        Member member = new Member();
        member.setId("1");
        member.setNickname("guoxiaoming");
        this.memberService.add(member);
         
        return toView("add", map);
    }
 
    @RequestMapping(value = { "/add""/add.html" }, method = { RequestMethod.POST })
    public ModelAndView addMember(HttpServletRequest request,
            HttpServletResponse response,
            @ModelAttribute("member") Member member) {
        Map<String, Object> map = new HashMap<String, Object>();
        System.out.println(member);
        map.put("message""成功添加数据到库," + member);
        this.memberService.add(member);
        return toView("message", map);
    }
 
    @RequestMapping(value = { "/{id:\\d+}/query""/{id:\\d+}/query.html" }, method = {
            RequestMethod.GET, RequestMethod.POST })
    public ModelAndView queryMember(HttpServletRequest request,
            HttpServletResponse response, @PathVariable("id") String id) {
        Map<String, Object> map = new HashMap<String, Object>();
        System.out.println(id);
        Member member = this.memberService.get(id);
        if (null != member) {
            map.put("message""查询Id=" + id + "的用户名为:" + member.getNickname());
        else {
            map.put("message""没有查询到与Id=" + id + "相关的数据");
        }
        return toView("message", map);
    }
 
    @RequestMapping(value = { "/{id:\\d+}/delete""/{id:\\d+}/delete.html" }, method = {
            RequestMethod.GET, RequestMethod.POST })
    public ModelAndView deleteMember(HttpServletRequest request,
            HttpServletResponse response, @PathVariable("id") String id) {
        Map<String, Object> map = new HashMap<String, Object>();
        try {
            this.memberService.delete(id);
            map.put("message""删除Id为" + id + "的用户成功.");
        catch (Exception e) {
            e.printStackTrace();
            map.put("message""删除Id为" + id + "的用户失败, " + e.getMessage());
        }
        return toView("message", map);
    }
 
}



import java.util.List;
 
import com.pudp.bae.model.Member;
 
public interface MemberDao {
    boolean add(Member member);
 
    abstract boolean add(List<Member> list);
 
    void delete(String key);
 
    Member get(String keyId);
     
}


package com.pudp.bae.dao.redis;
 
import java.util.ArrayList;
import java.util.List;
 
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.stereotype.Repository;
import org.springframework.util.Assert;
 
import com.pudp.bae.base.RedisGeneratorDao;
import com.pudp.bae.model.Member;
 
 
@Repository(value="memberDao")
public class MemberDaoImpl extends RedisGeneratorDao<String,Member> implements MemberDao{
   
  /**
   * 添加对象
   */
  @Override
  public boolean add(final Member member) { 
    boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { 
      public Boolean doInRedis(RedisConnection connection) 
          throws DataAccessException { 
        RedisSerializer<String> serializer = getRedisSerializer(); 
        byte[] key  = serializer.serialize(member.getId()); 
        byte[] name = serializer.serialize(member.getNickname()); 
        return connection.setNX(key, name); 
      
    }); 
    return result; 
  
 
  /**
   * 添加集合
   */
  @Override
  public boolean add(final List<Member> list) {
    Assert.notEmpty(list); 
    boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { 
      public Boolean doInRedis(RedisConnection connection) 
          throws DataAccessException { 
        RedisSerializer<String> serializer = getRedisSerializer(); 
        for (Member member : list) { 
          byte[] key  = serializer.serialize(member.getId()); 
          byte[] name = serializer.serialize(member.getNickname()); 
          connection.setNX(key, name); 
        
        return true
      
    }, falsetrue); 
    return result;
  
   
  /**
   * 删除对象 ,依赖key
   */
  @Override
  public void delete(String key) { 
    List<String> list = new ArrayList<String>(); 
    list.add(key); 
    delete(list); 
  
   
  /**
   * 删除集合 ,依赖key集合
   */
  public void delete(List<String> keys) { 
    redisTemplate.delete(keys); 
  
   
  /**
   * 修改对象
   */
  public boolean update(final Member member) { 
    String key = member.getId(); 
    if (get(key) == null) { 
      throw new NullPointerException("数据行不存在, key = " + key); 
    
    boolean result = redisTemplate.execute(new RedisCallback<Boolean>() { 
      public Boolean doInRedis(RedisConnection connection) 
          throws DataAccessException { 
        RedisSerializer<String> serializer = getRedisSerializer(); 
        byte[] key  = serializer.serialize(member.getId()); 
        byte[] name = serializer.serialize(member.getNickname()); 
        connection.set(key, name); 
        return true
      
    }); 
    return result; 
  
   
  /**
   * 根据key获取对象
   */
  @Override
  public Member get(final String keyId) { 
    Member result = redisTemplate.execute(new RedisCallback<Member>() { 
      public Member doInRedis(RedisConnection connection) 
          throws DataAccessException { 
        RedisSerializer<String> serializer = getRedisSerializer(); 
        byte[] key = serializer.serialize(keyId); 
        byte[] value = connection.get(key); 
        if (value == null) { 
          return null
        
        String nickname = serializer.deserialize(value); 
        return new Member(keyId, nickname); 
      
    }); 
    return result; 
  
 
}

 

import com.pudp.bae.base.BaseModel;
 
public class Member extends BaseModel{
  
  private static final long serialVersionUID = -1959528436584592183L;
  private String id;
  private String nickname;
   
  public Member(){}
   
  public Member(String id, String nickname){
    this.setId(id);
    this.setNickname(nickname);
  }
   
  public String getId() {
    return id;
  }
   
  public void setId(String id) {
    this.id = id;
  }
   
  public String getNickname() {
    return nickname;
  }
   
  public void setNickname(String nickname) {
    this.nickname = nickname;
  }
   
}


import javax.annotation.Resource;
 
import com.pudp.bae.dao.redis.MemberDao;
import com.pudp.bae.model.Member;
 
public class MemberService {
      
     @Resource(name="memberDao")
     private MemberDao memberDao;
      
     public void setMemberDao(MemberDao memberDao)
     {
        this.memberDao = memberDao;
     }
       
     public void add(Member member){
         memberDao.add(member);
     }
      
     public void delete(String id){
         memberDao.delete(id);
     }
      
     public Member get(String id)
     {
         return memberDao.get(id);
     }
}

http://blog.csdn.net/baidu_21578557/article/details/53692062