天天看點

Spring/Spring常用注解及解釋彙總----轉載一、開發常用二、JPA注解三、springMVC相關注解四、異常

一、開發常用

@Component:是一個泛化的概念,标注讓spring容器來識别和管理元件 ,可以作用在任何層次。

@Bean:類似于XML中的,标注一個類,去交給spring容器管理。

@Constroller:通常作用在控制層,但是目前該功能與 @Component 相同。

@RestController:包含@Controller和@ResponseBody功能,方法可以直接傳回資料而不是傳回頁面跳轉。

@ResponseBody:表示該方法的傳回結果直接寫入HTTP response body中,一般在異步擷取資料時使用,常用于傳回json資料。

@RequestMapping:映射請求路徑

@Service:通常标注在業務類上,交給spring容器管理。

@Autowired:依賴自動注入 (存在多個可注入Bean時,通過 @Qualifier 指定)

@Resource:與@Autowired作用相同

@Repository:隻能标注在 DAO 類上。該注解的作用不隻是将類識别為 Bean,同時它還能将所标注的類中

出的資料通路異常封裝為 Spring 的資料通路異常類型。

@Scope:指定 Bean 的作用範圍

@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主類上;還有各種自動配置的啟動注解@EnableXXXX即可開啟,比如開啟自動配置。@EnableAutoConfiguration,@EnableAsync開啟異步等等

@ComponentScan:元件掃描。個人了解相當于context:component-scan,如果掃描到有@Component

@[email protected]等這些注解的類,則把這些類注冊為bean。

@Configuration:指出該類是 Bean 配置的資訊源,相當于XML中的,一般加在主類上。

@EnableAutoConfiguration:讓 Spring Boot 根據應用所聲明的依賴來對 Spring 架構進行自動配置,一般加在主類上。

二、JPA注解

@Entity:@Table(name=”“):表明這是一個實體類。一般用于jpa這兩個注解一般一塊使用,但是如果表名和實體類名相同的話,@Table可以省略

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

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

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

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

@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq”):表示主鍵生成政策是sequence(可以為Auto、IDENTITY、native等,Auto表示可在多個資料庫間切換)

@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair”, allocationSize = 1):name為sequence的名稱,以便使用,sequenceName為資料庫的sequence名稱,兩個名稱可以一緻。

@Transient:表示該屬性并非一個到資料庫表的字段的映射,ORM架構将忽略該屬性。如果一個屬性并非資料庫表的字段映射,就務必将其标示為@Transient,否則,ORM架構預設其注解為@Basic。@Basic(fetch=FetchType.LAZY):标記可以指定實體屬性的加載方式

@JsonIgnore:作用是json序列化時将Java bean中的一些屬性忽略掉,序列化和反序列化都受影響。

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

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

三、springMVC相關注解

@RequestMapping("/path"):表示該控制器處理所有“/path”的UR L請求。RequestMapping是一個用來處理請求位址映射的注解,可用于類或方法上。

@RequestParam:用在方法的參數前面,自動擷取請求參數裡的值。

@PathVariable:路徑變量,放在URL中的變量,如localhost:8080/getPerson?id=1234。該注解可以擷取變量參數名為id的值

四、異常

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

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

後續繼續更新中…

繼續閱讀