一、@RequestParam和@PathVariable用法小結:
1.使用@RequestParam接收前段參數比較方便,前端傳參的URL:
url = “${ctx}/main/mm/am/edit?Id=${Id}&name=${name}”
後端使用集合來接受參數,靈活性較好,如果url中沒有對參數賦key值,後端在接收時,會根據參數值的類型附,會給值賦予默認值。
而且在後臺的url路徑中,直接寫路徑名稱即可,無需在寫參數名稱。
如果需要更改傳入的參數名稱,可以在註解中使用value=‘’進行指定url傳入名稱。
2.使用@PathVariable接收參數,參數值需要在url進行佔位,前端傳參的URL:
url = “${ctx}/main/mm/am/edit/${Id}/${name}”
前端傳參的URL於後端@RequestMapping的URL必須相同且參數位置一一對應,否則前端會找不到後端地址
必須在url路徑中寫上參數名稱,否則找不到參數。
如果需要更改傳入的參數名稱,可以在註解中使用value=‘’進行指定url傳入名稱。
二、使用@VALUE("{屬性}")
獲取properties中定義的屬性。自動注入到controller封裝的屬性中。
事例:controller:@Value("${name}")
properties: name= 12
三、@ServletComponentScan
使用filter、listener、servlet中需要在application中加入註解,方可在指定的filter、listener、servlet中加入servlet3中的註解方可使用。
四、@ModelAttribute
傳遞對象參數,需要向後臺傳入對象參數時候使用。在對象參數前加入,與@RequestParam用法相同。
例如:一個對象:id.name
傳遞參數是:user。
URL: 項目名/controller/handler?id=11&name=www
五、@Query nativeQuery = true,是否使用原生sql進行查詢
SpingDateJPA中自定義查詢語句。相當於HQL。
六、@Moodifying
且最好加上@Transactional註解
總結如下
(1)可以通過自定義的 JPQL 完成 UPDATE 和 DELETE 操作。 注意: JPQL 不支持使用 INSERT;
(2)在 @Query 註解中編寫 JPQL 語句, 但必須使用 @Modifying 進行修飾. 以通知 SpringData, 這是一個 UPDATE 或 DELETE 操作
(3)UPDATE 或 DELETE 操作需要使用事務,此時需要定義 Service 層,在 Service 層的方法上添加事務操作;
(4)默認情況下, SpringData 的每個方法上有事務, 但都是一個只讀事務。 他們不能完成修改操作。