一、使用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; } }
