springmvc 最簡配置-處理json數(shù)據(jù)

為什么會有這篇文章,因?yàn)樵谔幚磉^程中發(fā)現(xiàn)springmvc不能處理json股淡,這不可能啊身隐,所以寫了下,發(fā)現(xiàn)以前沒有重視@RequestBody唯灵。

  • 注: 注意鍵值對和json的區(qū)別:
    JSON:
{"username":"zhangsan"}

鍵值對:

Paste_Image.png

Controller

import com.zhb.entity.Account;
import com.zhb.entity.User;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by jarvan4dev on 16/2/25.
 */
@RestController
public class IndexController {

    @RequestMapping("/user")
    public Account getUser(@RequestBody User user){
        return new Account(1,user.getUsername(),"6227001376550927913", 10000.0);
    }
}

實(shí)體類

import lombok.Data;

/**
 * Created by jarvan4dev on 16/2/25.
 */
@Data //@Data-請參看我的lombok介紹
public class User {
    private int id;
    private String username;
    private String password;
}


import lombok.AllArgsConstructor;
import lombok.Data;
/**
 * Created by jarvan4dev on 16/2/25.
 */
@Data
@AllArgsConstructor
public class Account {

    private int id;
    private String username;
    private String cardNo;
    private double balance;
}

pom.xml

<dependencies>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>4.2.0.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>4.2.0.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aspects</artifactId>
          <version>4.2.0.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>1.8.6</version>
      </dependency>
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.6</version>
      </dependency>
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.7</version>
      </dependency>
      <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.1</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
  </dependencies>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.zhb.controller" />

    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
            </bean>
            <bean
                    class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="features">
                    <array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
                        <value>NotWriteDefaultValue</value>
                        <value>DisableCircularReferenceDetect</value>
                    </array>
                </property>
                <property name="supportedMediaTypes">
                    <list>
                        <value>application/json;charset=UTF-8</value>
                        <value>text/html;charset=UTF-8</value>
                        <value>text/plain;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="maxUploadSize" value="540000"/>
    </bean>
</beans>

web.xml

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

使用curl測試:

curl localhost:8080/sp/user -d '{"id":1,"username":"zhangsan","password":"123"}' -H "Content-type: application/json" 
  • 注意: 為了讓springmvc處理json贾铝,需要在Controller的參數(shù)中加入 @RequestBody注解,
    如:
... getUser(@RequestBody User user){...}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市垢揩,隨后出現(xiàn)的幾起案子玖绿,更是在濱河造成了極大的恐慌,老刑警劉巖叁巨,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斑匪,死亡現(xiàn)場離奇詭異,居然都是意外死亡锋勺,警方通過查閱死者的電腦和手機(jī)蚀瘸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庶橱,“玉大人贮勃,你說我怎么就攤上這事∷照拢” “怎么了寂嘉?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枫绅。 經(jīng)常有香客問我泉孩,道長,這世上最難降的妖魔是什么并淋? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任寓搬,我火速辦了婚禮,結(jié)果婚禮上预伺,老公的妹妹穿的比我還像新娘订咸。我一直安慰自己,他們只是感情好酬诀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布脏嚷。 她就那樣靜靜地躺著,像睡著了一般瞒御。 火紅的嫁衣襯著肌膚如雪父叙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天肴裙,我揣著相機(jī)與錄音趾唱,去河邊找鬼。 笑死蜻懦,一個胖子當(dāng)著我的面吹牛甜癞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宛乃,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼悠咱,長吁一口氣:“原來是場噩夢啊……” “哼蒸辆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起析既,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤躬贡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后眼坏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拂玻,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年宰译,在試婚紗的時候發(fā)現(xiàn)自己被綠了檐蚜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡沿侈,死狀恐怖熬甚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肋坚,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布肃廓,位于F島的核電站智厌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盲赊。R本人自食惡果不足惜铣鹏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哀蘑。 院中可真熱鬧诚卸,春花似錦、人聲如沸绘迁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缀台。三九已至棠赛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間膛腐,已是汗流浹背睛约。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哲身,地道東北人辩涝。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像勘天,于是被迫代替她去往敵國和親怔揩。 傳聞我的和親對象是個殘疾皇子捉邢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)沧踏,斷路器歌逢,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • 第一章: 回顧JavaWeb中的MVC設(shè)計模式 MVC這種設(shè)計模式,不光運(yùn)用于Web領(lǐng)域翘狱,而且也能用于非Web領(lǐng)域...
    奮斗的老王閱讀 2,311評論 2 54
  • SpringMVC學(xué)習(xí)筆記---- 一秘案、SpringMVC基礎(chǔ)入門,創(chuàng)建一個HelloWorld程序 1.首先潦匈,導(dǎo)...
    ITsupuerlady閱讀 3,107評論 1 34
  • AngularJS是什么阱高?AngularJs(后面就簡稱ng了)是一個用于設(shè)計動態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先茬缩,它是...
    200813閱讀 1,590評論 0 3
  • 覽香讀者俱樂部 ## 《斷舍離》閱讀時間:5月18日至5月31日 作者:【日】山下英子 出版社:廣西科學(xué)技術(shù)出版社...
    覽香閱讀 544評論 6 0