Intellij 14 SpringMVC+Mytatisフレームワークの統合と呼び出しテストの構築


このブログは2週間も引きずって書き始めたので、本当に忙しいです.最初の2つのブログMybatis、SpringMVCでは、Intellij 14でフレームワークを構築する方法をそれぞれ紹介しています.この記事では、以下の内容を紹介します.
  • は、2つのフレームワークをどのように統合するか(実際には簡単ですが、インスタンスコードは前の2つの編とは少し異なる場合があります)
  • は、前の文書において実装されていないPOSTインターフェース
  • を実装する.
  • Javaでインタフェースを呼び出す方法
  • 2つのフレームワークの統合:
              ,                ,      `xml`    ,`spring-mybatis.xml` `mvc-dispatcher-servlet.xml`,       Test     spring  `@ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})`  ,     `web.xml`  web       。           web       ,         ,   `spring-mybatis.xml`   `WEB-INF`  `spring`    ,    `web.xml`  (  `mvc-dispatcher-servlet.xml`    `spring-servlet.xml` ):    
    
        
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
        <servlet>
            <servlet-name>MESServiceservlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
            <init-param>
                <param-name>contextConfigLocationparam-name>
                <param-value>/WEB-INF/spring/spring-servlet.xmlparam-value>
            init-param>
            <load-on-startup>1load-on-startup>
        servlet>
    
        <servlet-mapping>
            <servlet-name>MESServiceservlet-name>
            <url-pattern>/url-pattern>
        servlet-mapping>
    
        <context-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>/WEB-INF/spring/spring-mybatis.xmlparam-value>
        context-param>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
        listener>
    
    web-app>

    そしてTestの正常な使用を保証するために、springフォルダもResourcesに設定しました.これでMybatis+SpringMVCは統合が完了しても、前の2つのブログの手順に従って構成し、テストに成功すれば、このステップは水が流れるはずです.
    POSTインタフェースを実現する:
                Controller        。
    
     package com.gcoreinc.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @RequestMapping("/home")
    public class HelloController {
    
        //@RequestMapping("/hello")
        //@ResponseBody
        //public String sayHello(){
        //    return "Hello World!";
        //}
        //           ,       
        @RequestMapping(path = "/hello", method = RequestMethod.GET)
        @ResponseBody
        public String sayHello(){
            return "Hello World!";
        }
        //    POST  
        @RequestMapping(path = "/newworld", method = RequestMethod.POST)
        public void addWorld(@RequestBody World world) {//World       ,       
            System.out.println(boxDetail);
            //  Service  add  
        }
    }

    これでインタフェースの作成に成功し、Tomcatサーバを起動しましょう.
    Javaの呼び出しインタフェース:
    Androidの開発経験があればインタフェースをオフにすることができます.OkHttpを紹介しようと思っていたのですが、どうやってJDK 7以上をサポートしているのか、うちの会社はまだ6なので、自分で衣食を豊かにするしかありません.実はHttpURLConnectionを使ってHTTPリンクを取得しています.GETリクエストを取得するインタフェースは、以下のようにすることができる(上記のhelloworldを例に挙げる).
    public void helloWorld(){
        URL url = new URL(http://127.0.0.70:8080/TestSpringMVC/home/hello);
        HttpURLConnection conn = url.openConnection();
        conn.setRequestMethod("GET");
        conn.connect();
        if (conn.getResponseCode() == CON_SUC) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line = null;
            while (null != (line = reader.readLine())) {
                result.append(line);
            }
            reader.close();
            conn.disconnect();
         }
         System.out.println(result.toString());
    }

    POSTインタフェースを要求するコードは以下の通りです.
    public void newWorld(){
        //  JSON  ,     google     `Gson`, maven     
        //World     ,       World  ,        ,       Date,TimeStamp      
        World world = new World();
        world.setName("XiWorld");
        world.setGod("XiWenRen");
        world.setProgramable(false);
        Gson gson = new Gson();
        String json = gson.toJson(world);
        URL url = new URL(http://127.0.0.70:8080/TestSpringMVC/home/newworld);
        HttpURLConnection conn = url.openConnection();
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setRequestProperty("Content-Type", "application/json");
        conn.connect();
        DataOutputStream dataOutputStream = new DataOutputStream(conn.getOutputStream());
        dataOutputStream.writeBytes(jsonData);
        dataOutputStream.flush();
        dataOutputStream.close();
    }
                 ,        world  
        :`@RequestBody`      Controller    json      World  ,      World        

    後記:
    プロジェクトの統合が終わってから2週間が経ったので、プロジェクトの状態が変わったので、より詳細な手順のスクリーンショットはありませんが、この部分は相対的に穴がなく、簡単に通過するはずです.そしてIDEAで測りながら書いていないので、以上のコードはテストなしで純粋に打っています.今Gsonを使っているうちにいくつかの穴に遭遇して、まだ解決していないので、次のブログでGsonの詳細な使い方を共有します.