? 專(zhuān)欄地址 系列教程更新中
?? 專(zhuān)欄介紹: 本專(zhuān)欄為SpringBoot+Spring+Mybatis的系列零基礎(chǔ)教程,從框架的基礎(chǔ)知識(shí)講起,從0開(kāi)始實(shí)現(xiàn)一個(gè)在線教育實(shí)戰(zhàn)項(xiàng)目
?? 源碼獲取: 項(xiàng)目中的資料可以通過(guò)文章底部公眾號(hào)聯(lián)系我獲取,或者+V 【yopa66】備注SSM
1.快速創(chuàng)建一個(gè)SpringBoot項(xiàng)目
- 項(xiàng)目創(chuàng)建,并開(kāi)發(fā)第一個(gè)接口
2.整體框架目錄
-
GET請(qǐng)求
- 場(chǎng)景:一般的查詢(xún)接口就是get請(qǐng)求
- 注解:@GetMapping = @RequestMapping(method = RequestMethod.GET)
-
一個(gè)頂兩的注解
@GetMapping = @RequestMapping(method = RequestMethod.GET) @PostMapping = @RequestMapping(method = RequestMethod.POST) @PutMapping = @RequestMapping(method = RequestMethod.PUT) @DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
SpringBoot中的常用注解詳解
-
@Controller:聲明該類(lèi)是一個(gè)控制器類(lèi),用來(lái)處理HTTP請(qǐng)求。
-
@RequestMapping:用來(lái)映射請(qǐng)求的URL和HTTP請(qǐng)求方法,可以用在類(lèi)級(jí)別和方法級(jí)別。
-
@GetMapping:用來(lái)映射HTTP GET請(qǐng)求。
-
@PostMapping:用來(lái)映射HTTP POST請(qǐng)求。
-
@PutMapping:用來(lái)映射HTTP PUT請(qǐng)求。
-
@DeleteMapping:用來(lái)映射HTTP DELETE請(qǐng)求。
-
@PathVariable:用來(lái)獲取URL中的參數(shù)值。
-
@RequestParam:用來(lái)獲取請(qǐng)求參數(shù)的值。
-
@RequestBody:用來(lái)獲取請(qǐng)求體中的數(shù)據(jù)。
-
@RestController是一個(gè)組合注解,它相當(dāng)于@Controller和@ResponseBody的結(jié)合體。
@Controller用來(lái)聲明該類(lèi)是一個(gè)控制器類(lèi),用來(lái)處理HTTP請(qǐng)求。
@ResponseBody用來(lái)將方法的返回值轉(zhuǎn)換成指定的格式,并寫(xiě)入到HTTP響應(yīng)中。
@RestController相當(dāng)于將@Controller和@ResponseBody組合起來(lái)使用,它的作用是聲明該類(lèi)是一個(gè)控制器類(lèi),并且方法的返回值會(huì)自動(dòng)轉(zhuǎn)換成JSON格式,并寫(xiě)入到HTTP響應(yīng)中。在使用@RestController時(shí),不需要再在每個(gè)方法上加@ResponseBody注解了。
全局?jǐn)?shù)據(jù)JSON格式封裝
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JsonData {
/**
* 狀態(tài)碼 0 表示成功,1表示處理中,-1表示失敗
*/
private Integer code;
/**
* 數(shù)據(jù)
*/
private Object data;
/**
* 描述
*/
private String msg;
/**
* 成功,傳入數(shù)據(jù)
* @return
*/
public static JsonData buildSuccess() {
return new JsonData(0, null, null);
}
/**
* 成功,傳入數(shù)據(jù)
* @param data
* @return
*/
public static JsonData buildSuccess(Object data) {
return new JsonData(0, data, null);
}
/**
* 失敗,傳入描述信息
* @param msg
* @return
*/
public static JsonData buildError(String msg) {
return new JsonData(-1, null, msg);
}
開(kāi)發(fā)視頻列表查詢(xún)接口
- 最終效果 這里使用PostMan進(jìn)行測(cè)試
啟動(dòng)類(lèi):
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
//這個(gè)類(lèi)要放在最外層才可以掃描子包的東西
SpringApplication.run(DemoApplication.class, args);
}
}
控制層: 主要
@RestController
@RequestMapping("/api/v1/video")
public class VideoController {
@Autowired
private VideoService videoService;
@GetMapping("list")
public Object list(String name) throws JsonProcessingException {
//xx/?name=xxx 傳遞參數(shù)
System.out.println(name);
return JsonData.bulidSuccess(videoService.listVideo());
}
mapper實(shí)現(xiàn)返回列表的方法,這里采用模擬,后面通過(guò)mybatis進(jìn)行數(shù)據(jù)庫(kù)交互 :
@Repository //加這個(gè)注解,spring就會(huì)自動(dòng)識(shí)別是一個(gè)組件,自動(dòng)會(huì)幫我們new一個(gè)類(lèi),之后我們?nèi)ideoSetvice接口定義方法
public class VideoMapper {
private static Map<Integer, Video> videoMap=new HashMap<>();
static {
//模擬的數(shù)據(jù),后續(xù)采用數(shù)據(jù)庫(kù)
靜態(tài)加載類(lèi),加載一次,已啟動(dòng)就用信息的了。
videoMap.put(1,new Video(1,"java基礎(chǔ)課程,jdk新特性"));
videoMap.put(2,new Video(2,"spring boot"));
videoMap.put(3,new Video(3,"java基礎(chǔ)課程,spring clound"));
videoMap.put(4,new Video(4,"java基礎(chǔ)課程,面試專(zhuān)題"));
}
public List<Video> listVideo(){
List<Video> list=new ArrayList<>();
list.addAll(videoMap.values());
return list;
}
}
接口層:
public interface VideoService {
//返回List列表
List<Video> listVideo();
}
實(shí)現(xiàn)層:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789112.html
@Service //可以統(tǒng)一使用Component但是為了區(qū)分可以使用提供的多種注解
public class VideoServiceImpl implements VideoService {
// private VideoMapper videoMapper=new VideoMapper(); 使用spring就不用這么寫(xiě),只需要加一個(gè)注解spring就會(huì)自動(dòng)幫我們實(shí)例化
@Autowired
private VideoMapper videoMapper;
@Override
public List<Video> listVideo() {
return videoMapper.listVideo();
}
}
@Autowired
private VideoService videoService;
@GetMapping("list")
public Object list(){
return videoService.listVideo();
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789112.html
- @Autowired 使用了這個(gè)注解 那全局都要用這個(gè) 不要單獨(dú)去new寫(xiě)法
到了這里,關(guān)于【SpringBoot教程】SpringBoot開(kāi)發(fā)HTTP接口GET請(qǐng)求實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!