一、使用Maven手工创建SpringBoot应用(IDEA)
1、 点击File——New——Project——Maven——Next,填写相关信息,创建项目。
2、 在pom.xml中添加相关依赖
org.springframework.boot
spring-boot-starter-parent
2.2.0.M2
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-web
org.springframework
spring-web
5.2.0.M1
3、 在java目录下新建包、新建一个类(不能直接在java文件夹下新建类运行)
packagenet.xdclass.demo.controller;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;
@RestControllerpublic classSampleController {
@RequestMapping("/")
String home(){return "Hello World!";
}public static void main(String[] args) throwsException{
SpringApplication.run(SampleController.class,args);
}
}
4、 点击运行,没有报错,则说明正常启动
5、浏览器访问本地tomcat 8080端口,Hello World就出来了
6、遇到的报错
引用RequestMapping报错,原因是缺少jar包,解决办法是在pom文件里面添加下面依赖。
org.springframework
spring-web
5.2.0.M1
二、使用构建工具自动生成项目基本架构
2、创建、下载demo包,导入IDEA即可
三、HTTP请求接口
1、Spring Boot启动类
@SpringBootApplication //@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan
@Configuration
@ServletComponentScanpublic class DemoApplication extendsSpringBootServletInitializer {
@OverrideprotectedSpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(DemoApplication .class);
}public static voidmain(String[] args){
SpringApplication.run(DemoApplication .class,args);
}
}
2、Http Get请求
packagenet.xdclass.demo.controller;import org.springframework.web.bind.annotation.*;importnet.xdclass.demo.domain.User;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.util.HashMap;importjava.util.Map;/*** 测试http协议的get请求*/@RestController//@RestController = @Controller+@ResponseBody @Controller处理用户的http请求。@ResponseBody 是把返回的数据转成json格式
public classGetcontroller {private Map 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);returnparams;
}/*** 测试GetMapping
*@paramfrom
*@paramsize
*@return
*/@GetMapping(value= "/v1/page_user1")public Object pageUser(int from,intsize){
params.clear();
params.put("from",from);
params.put("szie",size);returnparams;
}
@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);returnparams;
}/*** 功能描述:bean对象传参
* 注意:1、注意需要指定http头为 content-type为application/json
* 2、使用body传输数据
*@paramuser
*@return
*/@RequestMapping(value= "/v1/save_user",method =RequestMethod.POST)publicObject saveUser(@RequestBody User user){
params.clear();
params.put("user",user);returnparams;
}/*** 功能描述:测试获取http头信息
*@paramuserAgent
*@paramId
*@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);returnparams;
}
@GetMapping("/v1/test_request")publicObject getRequest(HttpServletRequest request){
params.clear();
String id= request.getParameter("id");
params.put("id",id);returnparams;
}
}
3、其他HTTP 方法
packagenet.xdclass.demo.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.DeleteMapping;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.PutMapping;importorg.springframework.web.bind.annotation.RestController;importjava.util.HashMap;importjava.util.Map;//测试http协议的post、del、put提交
@RestControllerpublic classOtherHttpController {private Map params = new HashMap<>();
@PostMapping("/v1/login")publicObject login(String id,String pwd){
params.clear();
params.put("id",id);
params.put("pwd",pwd);returnparams;
}
@PutMapping("/v1/put")publicObject put(String id){
params.clear();
params.put("id",id);returnparams;
}
@DeleteMapping("/v1/del")publicObject del(String id){
params.clear();
params.put("id", id);returnparams;
}
@PostMapping("/v1/regist")publicObject regist(String username,String password){
params.clear();
params.put("username: ",username);
params.put("password: ",password);returnparams;
}
}