中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringMVC常用注解有哪些

發布時間:2020-06-10 17:49:42 來源:億速云 閱讀:375 作者:元一 欄目:大數據

【SpringMVC簡介】

Spring MVC屬于SpringFrameWork的后續產品,已經融合在Spring Web Flow里面。Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的Spring MVC框架或集成其他MVC開發框架,如Struts1(現在一般不用),Struts 2(一般老項目使用)等等。

【SpringMVC常用注解】

@Controller

負責注冊一個bean 到spring 上下文中

@RequestMapping

注解為控制器指定可以處理哪些 URL 請求

@RequestBody

該注解用于讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然后把相應的數據綁定到要返回的對象上 ,再把HttpMessageConverter返回的對象數據綁定到 controller中方法的參數上

@ResponseBody

該注解用于將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,寫入到Response對象的body數據區

@ModelAttribute

在方法定義上使用 @ModelAttribute 注解:Spring MVC 在調用目標處理方法前,會先逐個調用在方法級上標注了@ModelAttribute 的方法

在方法的入參前使用 @ModelAttribute 注解:可以從隱含對象中獲取隱含的模型數據中獲取對象,再將請求參數 –綁定到對象中,再傳入入參將方法入參對象添加到模型中

@RequestParam

在處理方法入參處使用 @RequestParam 可以把請求參 數傳遞給請求方法

@PathVariable

綁定 URL 占位符到入參

@ExceptionHandler

注解到方法上,出現異常時會執行該方法

@ControllerAdvice

使一個Contoller成為全局的異常處理類,類中用@ExceptionHandler方法注解的方法可以處理所有Controller發生的異常

SpringMVC與Struts2區別比較】

A、spring mvc 和 struts2的加載機制不同:spring mvc的入口是servlet,而struts2是filter(servlet和filter區別見本文最后)

B、Struts2框架是類級別的攔截

C、SpringMVC是方法級別的攔截

【JPA注解

@Entity:表明這是一個實體類。

@MappedSuperClass:用在確定是父類的entity上。父類的屬性子類可以繼承。

@NoRepositoryBean:一般用作父類的repository,有這個注解,spring不會去實例化該repository。

@Column:如果字段名與列名相同,則可以省略。

@Id:表示該屬性為主鍵。

@JoinColumn(name=”loginId”):一對一:本表中指向另一個表的外鍵。一對多:另一個表指向本表的外鍵。

@OneToOne、@OneToMany、@ManyToOne:對應hibernate配置文件中的一對一,一對多,多對一。

【全局異常注解】

@ControllerAdvice:包含@Component。可以被掃描到。統一處理異常。

@ExceptionHandler(Exception.class):用在方法上面表示遇到這個異常就執行以下方法。

項目中具體配置解析和使用環境注解

@MappedSuperclass:

1.@MappedSuperclass 注解使用在父類上面,是用來標識父類的

2.@MappedSuperclass 標識的類表示其不能映射到數據庫表,因為其不是一個完整的實體類,但是它所擁有的屬性能夠映射在其子類對用的數據庫表中

3.@MappedSuperclass 標識的類不能再有@Entity或@Table注解

@Column:

1.當實體的屬性與其映射的數據庫表的列不同名時需要使用@Column標注說明,該屬性通常置于實體的屬性聲明語句之前,還可與 @Id 標注一起使用。

2.@Column 標注的常用屬性是name,用于設置映射數據庫表的列名。此外,該標注還包含其它多個屬性,如:unique、nullable、length、precision等。

【執行持久化方法,按發生時間執行的回調函數】

@javax.persistence.PostLoad:加載后。

@javax.persistence.PrePersist:持久化前。

@javax.persistence.PostPersist:持久化后。

@javax.persistence.PreUpdate:更新前。

@javax.persistence.PostUpdate:更新后。

@javax.persistence.PreRemove:刪除前。

@javax.persistence.PostRemove:刪除后。

【數據庫注解】

1)增

@PrePersist和@PostPersist事件在實體對象插入到數據庫的過程中發生:

@PrePersist事件在調用persist()方法后立刻發生,此時的數據還沒有真正插入進數據庫。

@PostPersist事件在數據已經插入進數據庫后發生。

2)刪

@PreRemove和@PostRemove事件的觸發由刪除實體引起:

@PreRemove事件在實體從數據庫刪除之前觸發,即在調用remove()方法刪除時發生,此時的數據還沒有真正從數據庫中刪除。

@PostRemove事件在實體從數據庫中刪除后觸發。

3)改

@PreUpdate和@PostUpdate事件的觸發由更新實體引起:

@PreUpdate事件在實體的狀態同步到數據庫之前觸發,此時的數據還沒有真正更新到數據庫。

@PostUpdate事件在實體的狀態同步到數據庫之后觸發,同步在事務提交時發生。

4)查

@PostLoad事件在下列情況下觸發:

執行EntityManager.find()或getreference()方法載入一個實體后。

執行JPQL查詢后。

EntityManager.refresh()方法被調用后。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万安县| 玉溪市| 依安县| 朔州市| 枣强县| 越西县| 天津市| 淅川县| 江口县| 汉阴县| 巨鹿县| 姜堰市| 兴山县| 平果县| 民勤县| 科技| 富川| 治多县| 皋兰县| 连山| 甘泉县| 古浪县| 林周县| 宁强县| 邻水| 鹿邑县| 大城县| 延川县| 海宁市| 刚察县| 阿坝县| 四平市| 瑞丽市| 古交市| 固始县| 城步| 通化县| 八宿县| 深州市| 嵊泗县| 中牟县|