spring4整合rest风格配置

阅读更多
    最近手头上有个新项目,打算采用前端js渲染+后端调用restful风格api获取数据。于是决定把之前一个项目的springMVC改造成符合restful风格的框架。找了很多资料,也遇到不少坑,下面把相关心得整理下。
    很多人以为resutful是一种标准,要按照什么标准才行,其实restful是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。说白了它就是个风格,所有的软件框架设计都是为了提升效率,而不是死板的标准。
    1 配置web.xml
    	
        HttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HttpMethodFilter
        *.json
    
     
        HttpMethodFilter
        *.xml
    
     
        HttpMethodFilter
        *.htm
    


    restful风格是面向资源,http1.1协议天生自带get(查询),post(创建),put("修改"),delete("删除")4种请求方式,但是因为部分浏览器ajax和表单提交只支持get和post,该filter就是用于实现put和delete提交请求。
    	

    2.添加springMVC配置,因为上一个项目是采用velocity模板渲染页面,因此也保留了对velocity模板渲染的
     
    
    	classpath:velocity.properties   
        
            view
        
        
            
                UTF-8
                UTF-8
                text/html;charset=UTF-8
                macro/macros.vm
            
        
    

	
        
        
        

        
        

        
        
        

        
        
        
        
        
     
      
      
    	
          
          
          
          
          
  
          
          
              
                  
                  
                  
                  
                  
              
          
      
          
          
          
              
                  
      
              
          
          
              
                  
                  
                  
                
                   
                       
                        
                        	
                        
                       
                   
                
              
          
     
  


    3controller演示
   @RequestMapping(value = "/test", method = RequestMethod.POST)
	@ResponseStatus(HttpStatus.CREATED)
	// 201
	public UserDetails createUser() {

		UserDetails userDetails = new UserDetails();
		userDetails.setUserName("Krishna");
		userDetails.setEmailId("[email protected]");
		userDetails.setBirthday(new Date());
		return userDetails; // json
	}

	@RequestMapping(value = "/test", method = RequestMethod.PUT)
	// 205
	@ResponseStatus(HttpStatus.RESET_CONTENT)
	public UserDetails updateUser() {
		UserDetails userDetails = new UserDetails();
		userDetails.setUserName("Krishna");
		userDetails.setEmailId("[email protected]");
		userDetails.setBirthday(new Date());
		return userDetails;
	}






   

你可能感兴趣的:(spring,rest,velocity,框架,java)