-
實(shí)線是應(yīng)用程序的行為流
查看全部 -
@Configuration??//?1.標(biāo)志配置類,使得springboot容器可以掃描到 @EnableScheduling?//?2.開啟定時(shí)任務(wù) @Slf4j public?class?MyTask?{ ????//3.添加一個(gè)任務(wù),并且注明任務(wù)的運(yùn)行表達(dá)式 ????@Scheduled(cron?=?"*/5?*?*?*?*??") ????public?void?publishMsg(){ ????????log.warn("開始執(zhí)行任務(wù)"+?LocalDateTime.now()); ????} ????/* ????*?分布式不適用 ????*?*/
查看全部 -
* 自義定異常
* 目的:
* ? ? ? 統(tǒng)一處理異常
* ? ? ? 便于解耦,可以在攔截器,控制層,業(yè)務(wù)側(cè)去使用
* ? ? ? 比如正常情況返回前端是list,錯(cuò)誤是string 解耦后錯(cuò)誤返回異常就行public?class?MyCustomException?extends?RuntimeException{ ????public?MyCustomException(String?erroMsg)?{ ????????super(erroMsg); ????} }
* 優(yōu)雅的處理異常,進(jìn)行調(diào)用
* */public?class?GraceException?{ ????public?static?void?display(String?errMsg){ ????????throw?new?MyCustomException(errMsg); ????} }
//調(diào)用
if?(!"1001".equals(userId)?||?!"abc".equals(userToken)){ ????log.error("用戶校驗(yàn)不通過(guò),信息不匹配"); ????GraceException.display("用戶校驗(yàn)不通過(guò),信息不匹配"); ????return?false; }
查看全部 -
spring:
?servlet:
? ?multipart:
? ? ?file-size-threshold: 500KB # 文件上傳的大小限制,設(shè)置最大值,不能超過(guò)
? ? ?max-request-size: 2MB # 請(qǐng)求的最大值,用于批量查看全部 -
獲取Request參數(shù)
public?class?StuController?{ ????@GetMapping("{stuId}/get") ????public?String?getStu(@PathVariable("stuId")?String?stuId, ?????????????????????????@RequestParam("name")?String?name, ?????????????????????????@RequestParam?Integer?id){ ????????/* ????????*?@RequestParam:?用于獲得url中的參數(shù),如果參數(shù)變量名保持一致,該注解可以省略 ????????*?*/ ????????log.info("stuId="+stuId); ????????log.info("name="+name); ????????log.info("id="+id); ????????return?"查詢Stu"; ????} ????/* ????*?@RequestBody?可以是一個(gè)對(duì)象也可以是一個(gè)Map ????*?@RequestHeader?獲取請(qǐng)求頭信息 ????*?*/ ????@PostMapping("create") ????public?String?createStu(@RequestBody?Map<String,Object>?map, ????????????????????????????@RequestHeader("token")?String?token, ????????????????????????????@CookieValue("clientId")?String?clientId, ????????????????????????????HttpServletRequest?request){ ????????log.info("map="+map.toString()); ????????log.info("token="+token); ????????log.info("clientId="+clientId); ????????String?headerToken?=?request.getHeader("token"); ????????log.info("headerToken="+headerToken); ????????return?"新增Stu"; ????}
查看全部 -
在Spring框架中,處理HTTP請(qǐng)求時(shí),常用的注解用于接收不同類型的參數(shù)。以下是這些注解的詳細(xì)說(shuō)明:
@RequestParam
用途: 用于接收URL中的查詢參數(shù)(Query Parameters)。
示例:
@GetMapping("/example") public?String?exampleMethod(@RequestParam?String?name)?{ ????return?"Hello,?"?+?name;}
當(dāng)訪問(wèn)?/example?name=John?時(shí),name?參數(shù)的值為?"John"。
@PathVariable
用途: 用于接收URL路徑中的變量(Path Variables)。
示例:
@GetMapping("/example/{id}") public?String?exampleMethod(@PathVariable?Long?id)?{ ????return?"ID:?"?+?id;}
當(dāng)訪問(wèn)?/example/123?時(shí),id?參數(shù)的值為?123。
@RequestBody
用途: 用于接收HTTP請(qǐng)求體(Request Body)中的數(shù)據(jù),通常用于POST、PUT等請(qǐng)求。
示例:
@PostMapping("/example") public?String?exampleMethod(@RequestBody?User?user)?{ ????return?"Received?user:?"?+?user.getName();}
請(qǐng)求體中的JSON數(shù)據(jù)會(huì)被自動(dòng)轉(zhuǎn)換為?User?對(duì)象。
@RequestHeader
用途: 用于接收HTTP請(qǐng)求頭(Request Headers)中的信息。
示例:
@GetMapping("/example") public?String?exampleMethod(@RequestHeader("Authorization")?String?authToken)?{ ????return?"Authorization?token:?"?+?authToken; ????}
獲取請(qǐng)求頭中的?Authorization?字段值。
@CookieValue
用途: 用于接收HTTP請(qǐng)求中的Cookie值。
示例:
@GetMapping("/example") public?String?exampleMethod(@CookieValue("sessionId")?String?sessionId)?{ ????return?"Session?ID:?"?+?sessionId; ??}
獲取名為?sessionId?的Cookie值。
總結(jié)
@RequestParam: 用于接收URL查詢參數(shù)。
@PathVariable: 用于接收URL路徑變量。
@RequestBody: 用于接收請(qǐng)求體中的數(shù)據(jù)。
@RequestHeader: 用于接收請(qǐng)求頭中的信息。
@CookieValue: 用于接收請(qǐng)求中的Cookie值。
這些注解在Spring MVC中非常常用,能夠幫助開發(fā)者方便地處理不同類型的請(qǐng)求參數(shù)。
查看全部 -
Restful 接口請(qǐng)求風(fēng)格
@GetMapping("get")
public String getStu(){
? ?return "查詢Stu";
}
@PostMapping("create")
public String createStu(){
? ?return "新增Stu";
}
@PutMapping("update")
public String updateStu(){
? ?return "修改Stu";
}
@DeleteMapping("delete")
public String deleteStu(){
? ?return "刪除Stu";
}查看全部 -
lombok 插件
<dependency>
? ?<groupId>org.projectlombok</groupId>
? ?<artifactId>lombok</artifactId>
</dependency>
@Data ?//生成get和set方法
@ToString ?//生成toString方法
@NoArgsConstructor //生成無(wú)參構(gòu)造方法
@AllArgsConstructor //生成全參構(gòu)造方法@Slf4j // 日志?
log.debug()
log.info()
log.warn
log.error
public class Student {
? ?private String name;
? ?private Integer age;
? ?private String sex;
}
弊端 需要每個(gè)人都要配置這個(gè)查看全部 -
logo 命名為favicon.ico
?默認(rèn)static 在根目錄訪問(wèn) -目錄層級(jí)更改
#spring:
# ?mvc:
# ? ?static-path-pattern:
# ?banner:
# ? ?image: 圖片,
# ? ? ?location: ?txt但企業(yè)前后端分離不在static編寫前端代碼
查看全部 -
自定義配置
yml ,properties注入
@Value("${}")
查看全部 -
在屬性資源文件寫一些固定的配置 如密鑰,加密信息
使用config.properties不需要構(gòu)造函數(shù)
查看全部 -
bootstrap屬性不會(huì)被覆蓋
查看全部 -
springboot 內(nèi)嵌 web容器?
以前配置端口號(hào) ,在tomcat -> server.xml 配置
創(chuàng)建application.yml (.properties)
屬性有Tab縮進(jìn),值有空格
查看全部 -
status:?
4xx 表示前端問(wèn)題,接口存在但路由出問(wèn)題
可能是url method body headers params等
5xx 后端問(wèn)題
查看全部 -
@RequestMapping 注解用于將HTTP請(qǐng)求映射到特定的處理方法上。它可以用于類級(jí)別和方法級(jí)別
@ResponseBody 注解用于指示Spring將方法的返回值直接寫入HTTP響應(yīng)體中,而不是進(jìn)行視圖解析。通常用于返回JSON、XML等格式的數(shù)據(jù)。
項(xiàng)目構(gòu)建完 --> maven -> install
@RestController? =?@ResponseBody +?@Controller??查看全部 -
引入父工程 spring-boot-starter-parent, 它包含了很多springboot的子工程(elasticsearch...).
查看全部 -
注冊(cè)攔截器
查看全部 -
很清楚了
查看全部 -
各種@其實(shí)都會(huì)被掃描到,不同的注解可能只是幫助理解代碼?
查看全部
舉報(bào)