• Spring Boot 知识笔记(创建maven项目、HTTP接口)


    一、使用Maven手工创建SpringBoot应用(IDEA)

    1、  点击File——New——Project——Maven——Next,填写相关信息,创建项目。

    2、  在pom.xml中添加相关依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.M2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.0.M1</version>
        </dependency>
    </dependencies>

    3、  在java目录下新建包、新建一个类(不能直接在java文件夹下新建类运行)

    package net.xdclass.demo.controller;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    
    
    @RestController
    public class SampleController {
       @RequestMapping("/")
       String home(){
          return "Hello World!";
       }
       public static void main(String[] args) throws Exception{
          SpringApplication.run(SampleController.class,args);
       }
       
    }

    4、 点击运行,没有报错,则说明正常启动

     5、浏览器访问本地tomcat 8080端口,Hello World就出来了

     6、遇到的报错

    引用RequestMapping报错,原因是缺少jar包,解决办法是在pom文件里面添加下面依赖。

    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.0.M1</version>
        </dependency>

    二、使用构建工具自动生成项目基本架构

    1、 工具地址:http://start.spring.io/,选择、填写相关信息

    2、创建、下载demo包,导入IDEA即可

     三、HTTP请求接口

    1、Spring Boot启动类

    @SpringBootApplication    //@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan
    @Configuration
    @ServletComponentScan
    public class DemoApplication extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(DemoApplication .class);
        }
        public static void main(String[] args){
    
            SpringApplication.run(DemoApplication .class,args);
        }
    }

    2、Http Get请求

    package net.xdclass.demo.controller;
    
    import org.springframework.web.bind.annotation.*;
    import net.xdclass.demo.domain.User;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * 测试http协议的get请求
     */
    @RestController    //@RestController = @Controller+@ResponseBody      @Controller处理用户的http请求。@ResponseBody 是把返回的数据转成json格式
    public class Getcontroller {
        private Map<String ,Object> params = new HashMap<>();
        @GetMapping(path = "/v0/{city_id}/{user_id}")
        public Object findUser(@PathVariable("city_id") String cityId,@PathVariable("user_id") String userId){
            params.put("cityId",cityId);
            params.put("userId",userId);
            return params;
        }
    
    
        /**
         * 测试GetMapping
         * @param from
         * @param size
         * @return
         */
        @GetMapping(value = "/v1/page_user1")
        public Object pageUser(int from,int size){
            params.clear();
            params.put("from",from);
            params.put("szie",size);
            return params;
        }
        @GetMapping(value = "/v1/page_user2")  //GetMapping相当于RequestMapping+method(get)的封装
        public Object pageUserV2(@RequestParam(defaultValue = "0",name = "page") int from,int size){ //page的值映射到from里面了。
            params.clear();
            params.put("from",from);
            params.put("szie",size);
            return params;
        }
    
        /**
         * 功能描述:bean对象传参
         * 注意:1、注意需要指定http头为 content-type为application/json
         *         2、使用body传输数据
         * @param user
         * @return
         */
        @RequestMapping(value = "/v1/save_user",method = RequestMethod.POST)
        public Object saveUser(@RequestBody User user){
            params.clear();
            params.put("user",user);
            return params;
        }
        /**
         * 功能描述:测试获取http头信息
         * @param userAgent
         * @param Id
         * @return
         */
        @GetMapping("/v1/get_header")
        public Object getHeader(@RequestHeader("User-Agent" ) String userAgent,String Id){
            params.clear();
            params.put("access-userAgent",userAgent);
            params.put("Id",Id);
            return params;
        }
    
        @GetMapping("/v1/test_request")
        public Object getRequest(HttpServletRequest request){
            params.clear();
            String id = request.getParameter("id");
            params.put("id",id);
            return params;
        }
    }

     3、其他HTTP 方法

    package net.xdclass.demo.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.DeleteMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.PutMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.HashMap;
    import java.util.Map;
    
    //测试http协议的post、del、put提交
    @RestController
    public class OtherHttpController {
        private Map<String,Object> params = new HashMap<>();
        @PostMapping("/v1/login")
        public Object login(String id,String pwd){
            params.clear();
            params.put("id",id);
            params.put("pwd",pwd);
            return params;
        }
    
        @PutMapping("/v1/put")
        public Object put(String id){
            params.clear();
            params.put("id",id);
            return params;
        }
        @DeleteMapping("/v1/del")
        public Object del(String id){
            params.clear();
            params.put("id", id);
            return params;
        }
    
        @PostMapping("/v1/regist")
        public Object regist(String username,String password){
            params.clear();
            params.put("username: ",username);
            params.put("password: ",password);
            return params;
        }
    }
  • 相关阅读:
    信号发生器的设计(期末课程设计)
    小程序异步获取openid解决方案
    微信小程序生成二维码之传参(接收的参数乱码该咋解决)
    小程序tabBar,点击进入tabBar刷新tabBar页面
    微信小程序函数执行顺序问题
    RESTful规范与常用状态码
    dedeCMS二次开发api简单接口代码
    DEDECMS怎么获取当前栏目及所有子栏目的文章数量
    DedeCMSV57数据库结构文档(数据字典)
    【JQuery插件】把网页或某div或table表格内容转为图片并下载
  • 原文地址:https://www.cnblogs.com/Eleven-Liu/p/10914511.html
Copyright © 2020-2023  润新知