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 ...
随机推荐
- kali 安装 360国产浏览器
1. 下载360安全浏览器国产版本的 amd64 deb的包 https://browser.360.cn/se/linux/index.html 下载到的文件为: browser360-cn-sta ...
- 乘法器——booth编码
博主最近在学习加法器.乘法器.IEEE的浮点数标准,作为数字IC的基础.当看到booth编码的乘法器时,对booth编码不是很理解,然后在网上找各种理解,终于豁然开朗.现将一个很好的解释分享给大家,希 ...
- [转] console.log的高级用法
//基本用法 console.log('最常见用法\n换行'); console.error('输出错误信息 会以红色显示'); console.warn('打印警告信息 会以黄色显示'); cons ...
- IDEA 调试 JAVA ConcurrentLinkedQueue
调试ConcurrentLinkedQueue 源码 poll() 方法时 ,出现了比较奇怪的现象,当时队列里有两个元素,如下截图, 但执行完 p.casItem(item, null)后,出现了令人 ...
- python 进程和线程-线程和线程变量ThreadLocal
线程 线程是由若干个进程组成的,所以一个进程至少包含一个线程:并且线程是操作系统直接支持的执行单元.多任务可以由多进程完成,也可由一个进程的多个线程来完成 Python的线程是真正的Posix Thr ...
- javascript中常用函数
1.js 获取文件后缀名 <script type="text/javascript"> var filename="www/data/index.php&q ...
- ADO.NET 根据实体类自动生成添加修改语句仅限Oracle使用
话不多说直接上代码,新手上路,高手路过勿喷,请多多指教. /// <summary> /// 等于号 /// </summary> ) + Convert.ToChar() + ...
- Jenkins 任务定时
在项目配置中选择 Build Triggers 下勾选 Build periodically,可以对项目进行定时构建设置.构建设置详细可通过右边的问号符号进行查看. 定时构建字段遵循 cron 的语法 ...
- 易语言网页登录 POST
使用精易模块 打开网页登录窗口 抓取数据 输入用户名密码,抓包 保存抓到的数据 包含post地址和数据信息 易语言代码 解决乱码
- Linux的权限管理操作-Linux从入门到精通第七天(非原创)
文章大纲 一.权限概述二.权限设置三.属主与属组设置四.扩展五.学习资料下载六.参考文章 一.权限概述 总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner.group.other ...