zoukankan      html  css  js  c++  java
  • Spring Boot 例一 实现jsonp接口

    1.新建项目(选择quikstart)

    2.增加spring boot 依赖

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-autoconfigure</artifactId>
          <version>1.5.2.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <version>1.5.2.RELEASE</version>
        </dependency>

    3.添加 springboot打包jar 插件依赖

    参考 Spring Boot的Maven插件Spring Boot Maven plugin详解

    <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.9.1</version>
            <configuration>
              <encoding>UTF-8</encoding>
              <charset>UTF-8</charset>
              <docencoding>UTF-8</docencoding>
              <skip>true</skip>
            </configuration>
          </plugin>
    
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>repackage</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
    
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
              <encoding>UTF-8</encoding>
            </configuration>
          </plugin>
        </plugins>
      </build>

    4. 设置启动

    application.properties 设置 

    server.port=9089


    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.SpringApplication;
    /**
     * Hello world!
     *
     */
    @SpringBootApplication
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }

    5. 添加 Contrller层

    import com.g2.webtest.model.Person;
    import com.g2.webtest.model.PersonReq;
    import org.springframework.http.MediaType;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import java.util.HashMap;
    import java.util.Map;
    
    
    
    @RestController
    @RequestMapping("/h5")
    public class HomeController {
        private static Map<String, Person> dataSource;
        private static Person anonymous = new Person("未知", 0);
    
        @RequestMapping(value = "/{code}.jsonp")
        public Person testJsonp(@PathVariable("code") String code) {
            return dataSource.getOrDefault(code, anonymous);
        }
    
        @RequestMapping(value = "/person", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType
                .APPLICATION_JSON_VALUE)
        @ResponseBody
        public Person testJsonp2(@RequestBody PersonReq req) {
            return dataSource.getOrDefault(req.getCode(), anonymous);
        }
    
    
        static {
            dataSource = new HashMap<>();
            dataSource.put("1001", new Person("张三", 15));
            dataSource.put("1002", new Person("李四", 18));
        }
    }
    public class Person {
        private String name;
        private int age;
    
        public Person(){
            this("",0);
        }
        public Person(String name,int age){
            this.name=name;
            this.age=age;
        }
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

    6.设置jsonp的配置

    import com.g2.webtest.controller.h5.HomeController;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;
    
    
    @ControllerAdvice(basePackageClasses = {HomeController.class})
    public class JSONPConfiguration extends AbstractJsonpResponseBodyAdvice {
        public JSONPConfiguration(){
            super("callback","jsonp");
        }
    }

    7.测试

     http://127.0.0.1:9089/h5/1001.jsonp?callback=myfun

    myfun({"name":"张三","age":15});

  • 相关阅读:
    每个zone的low memory是怎么计算出来的
    /proc/meminfo中meminfo的计算方法
    shmem:
    tc:逼良为娼
    内核抢占
    html/css/javascript知识点集锦;完全小白开搞web编程
    netem设置了网卡的流量控制,为啥发包的延迟就搞不定呢?
    滑动窗口
    发送缓冲区sk_wmem_queued
    ASP.NET MVC 实现区域 项目分离 (比较好的方式)
  • 原文地址:https://www.cnblogs.com/zhshlimi/p/9111283.html
Copyright © 2011-2022 走看看