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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探