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 ...
随机推荐
- JSON.parse() 与 JSON.stringify()
JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象.提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作). 语法 JSON.par ...
- MySQL中的 redo 日志文件
MySQL中的 redo 日志文件 MySQL中有三种日志文件,redo log.bin log.undo log.redo log 是 存储引擎层(innodb)生成的日志,主要为了保证数据的可靠性 ...
- SqlServer简单的操作XML以及SQl的 try catch等统一格式
1:SqlServer简单的操作XML: ALTER PROCEDURE [dbo].[SP_CRM_FranchiseeRecharge_Money] @Create_By VARCHAR(), @ ...
- Mybatis连接MySQL时,可以使用的JDBC连接字符串参数
一.举例 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test_db?useAffectedRows=true&allowMultiQu ...
- English--音标重难点
English|音标重难点 在拥有了,音标的元音与辅音的基础之后,需要对于这些音标进行加以区分,毕竟方言对于口型的影响非常的大. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点 ...
- vue+element 表格按需合并
这个功能难度感觉一般般吧,记录一下,以后碰到了直接来复制,懒得再写了 效果如下: 前6列是合并,后面的有几行,动态显示几行 重点是在数据处理上面做文章,合并列大家都会,数据处理呢?这样来处理, 我们拿 ...
- 并发编程(二)--利用Process类开启进程、僵尸进程、孤儿进程、守护进程、互斥锁、队列与管道
一.multiprocessing模块 1.multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的编程接口类似. 2.mu ...
- python3做词云分析
python3做词云 其实词云一般分为两种,一个是权重比,一个是频次分析 主要还是体现在自然语言方向,难度较大,但这里我们用jieba词库 主要思路, 后端算数据+前端生成图(D3-cloud-好像是 ...
- MySQL数据备份概述
MySQL备份类型 热备份.温备份.冷备份 (根据服务器状态) 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 物理备份与逻辑备份 (从对象来分) 物理备份 ...
- Linux shell for循环结构
Linux Shell for循环结构 循环结构 1:循环开始条件 2:循环操作 3:循环终止的条件 shell语言 for,while ...