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