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 ...
随机推荐
- 前端学习:学习笔记(CSS部分)
前端学习:学习笔记(CSS部分) CSS的学习总结(图解) CSS的引入方式和书写规范 CSS的插入方式_内嵌样式 <!DOCTYPE html> <html> <hea ...
- jquery-ajax请求.NET MVC 后台
在ajax的URL中写上"/你的控制器名/你方法名" 在后台控制器中对应有两个常用类型一个是ActionResult还有一个是JsonResult 在访问时需要在类型上加上publ ...
- edrawmax使用技巧备忘
由于自己经常需要画图示意,在对比研究了市面上的画图软件后,最终选择了亿图图示,一来是该软件貌似简单强大,有好多现成可用的功能,二来支持国产,并且亿图团队感觉还是不错的一直在用心打磨产品,当然要支持的! ...
- babel plugin和presets是什么,怎么用?
https://www.fullstackreact.com/articles/what-are-babel-plugins-and-presets/ 当开发react或者vuejs app时,开发者 ...
- Laravel集合的简单理解
本篇文章给大家带来的内容是关于Laravel集合的简单理解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 集合通过 Illuminate\Database\Eloquent\C ...
- 线程安全---Day23
最近忙着备考大学四年最后的两科,昨天刚考完大学所有的考试,但是大学专业是机械,但是自己热衷于IT行业,想往IT行业走,希望毕业后能成功进入到IT行业,只希望毕业能找到一份Java开发工程师的工作,这样 ...
- FreeBSD虚拟机 VMware Tools 安装教程
对于 FreeBSD 虚拟机,您可以使用命令行工具手动安装或升级 VMware Tools 前提条件 开启虚拟机. 确认客户机操作系统正在运行. 因为 VMware Tools 安装程序是使用 Per ...
- 左右对齐Justify遇到的坑
遇到的问题 这两天在开发一个病历的对外展示页面,设计稿上label是左右拉伸对齐的,显示效果如下: 怎么实现这种效果呢? 首先想到的是文字中间加空格,但是这种方式太low了,而且不太容易控制.网上查资 ...
- Qt TCP通信
工程文件 QT += network 服务端 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include <QTcpS ...
- IDEA安装(2019.2版)
IDEA安装(2019.2版) 前段时间在公司实习接触过现下很火的 IDE,这里我根据搜集到的资料以及自己的实际操作整合了这篇博客,包括了安装和破解 IDEA,借此打开学习之旅. IntelliJ ...