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;
}
}
Spring Boot 知识笔记(创建maven项目、HTTP接口)的更多相关文章
- 使用Spring Boot和Gradle创建AngularJS项目
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...
- Spring Boot 知识笔记(热部署)
热部署原理: 使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader ...
- Spring Boot 知识笔记(整合Mybatis)
一.pom.xml中添加相关依赖 <!-- 引入starter--> <dependency> <groupId>org.mybatis.spring.boot&l ...
- Spring Boot 知识笔记(配置文件)
Spring boot 提供了两种常用的配置文件,properties和yml文件. 1.yml yml是YAML(YAML Ain't Markup Language)语言的文件,以数据为中心,比j ...
- Spring Boot 知识笔记(Filter过滤器)
Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 htm ...
- Spring Boot 知识笔记(thymleaf模板引擎)
一.pom.xml中引入 <dependency> <groupId>org.springframework.boot</groupId> <artifact ...
- Spring Boot 知识笔记(整合Redis)
一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- Spring Boot 知识笔记(集成zookeeper)
一.本机搭建zookeeper伪集群 1.下载安装包,复制三份 2.每个安装包目录下面新建一个data文件夹,用于存放数据目录 3.安装包的conf目录下,修改zoo.cfg配置文件 # The nu ...
- Spring Boot 知识笔记(定时任务与异步)
一.定时任务 1.启动类里面增加注入 @SpringBootApplication //@SpringBootApplication = @Configuration+@EnableAutoConfi ...
随机推荐
- Window与Document
Window 表示一个包含DOM文档的窗口,其 document 属性指向窗口中载入的 DOM文档.使用 document.defaultView 属性可以获取指定文档所在窗口.window作为全局变 ...
- MongoDB 学习笔记 ---创建用户
MongoDB安装好了之后,开始学习常用命令 首先,运行MongoDB, 记住,先不用带参数--auth /usr/local/mongodb/bin/mongod -dbpath=/usr/loca ...
- JTAG接口定义
- 12、Render函数
1.什么是Render函数 Vue 推荐在绝大多数情况下使用模板来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力.这时你可以用渲染函数,它比模板更接近编译器. ...
- mysql 实现row_number功能
需求: 解答:由于mysql 中没有类似oracle中的 row_number功能,要实现row_number 可以使用如下功能: Select pkid,(@row_number:=@row_num ...
- ASP.NET Core 应用程序状态
在ASP.NET Core中,由多种途径可以对应用程序状态进行管理,使用哪种途径,由检索状态的时机和方式决定. 应用程序状态指的是用于描述当前状况的任意数据.包括全局和用户特有的数据. 开发人员可以根 ...
- 易百教程人工智能python补充-NLTK包
自然语言处理(NLP)是指使用诸如英语之类的自然语言与智能系统进行通信的AI方法. 如果您希望智能系统(如机器人)按照您的指示执行操作,希望听取基于对话的临床专家系统的决策时,则需要处理自然语言. N ...
- ObjC: 委托模式
转自:http://marshal.easymorse.com/tech/objc-%e5%a7%94%e6%89%98%e6%a8%a1%e5%bc%8f 在ObjC中,经常提到委托模式(deleg ...
- error: undefined reference to `vtable for
出现如下错误: 解决办法 当类中加入Q_OBJECT,需要手动删除中间文件,再构建
- Alpha4
一.站立式会议照片 二.工作进展 (1) 昨天已完成的工作 a. 实现用户登录时获取用户信息功能 b. 实现个人目标列表,允许用户在个人目标界面浏览已设置的目标 c. 继续实现目标广场列表 (2)今天 ...