Spring 注解



@Autowired 自動注入 (存在多個可注入Bean時,通過 @Qualifier 指定)
@Resource 與@Autowired作用相同
@Repository 只能標注在 DAO 類上。該注解的作用不只是將類識別為 Bean,同時它還能將所標注的類中拋出的數據訪問異常封裝為 Spring 的數據訪問異常類型
@Component 是一個泛化的概念,僅僅表示一個組件 (Bean) ,可以作用在任何層次。
@Service 通常作用在業務層,但是目前該功能與 @Component 相同。
@Constroller 通常作用在控制層,但是目前該功能與 @Component 相同。
@Scope 指定 Bean 的作用范圍

@SpringBootApplication:
包含@Configuration、@EnableAutoConfiguration、@ComponentScan
通常用在主類上。

@RestController:
用於標注控制層組件(如struts中的action),包含@Controller和@ResponseBody。

@ResponseBody:
表示該方法的返回結果直接寫入HTTP response body中
一般在異步獲取數據時使用,在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上

@responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。比如
異步獲取json數據,加上@responsebody后,會直接返回json數據。

@ComponentScan:
組件掃描。個人理解相當於<context:component-scan>,如果掃描到有@Component
@Controller@Service等這些注解的類,則把這些類注冊為bean。


@Configuration:
指出該類是 Bean 配置的信息源,相當於XML中的<beans></beans>,一般加在主類上。


@Bean:
相當於XML中的<bean></bean>,放在方法的上面,而不是類,意思是產生一個bean,並交給spring
管理。


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

2.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表示可在多個數據庫間
切換),指定sequence的名字是repair_seq。


@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:
RequestMapping是一個用來處理請求地址映射的注解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。
該注解有六個屬性:
params:指定request中必須包含某些參數值是,才讓該方法處理。
headers:指定request中必須包含某些指定的header值,才能讓該方法處理請求。
value:指定請求的實際地址,指定的地址可以是URI Template 模式
method:指定請求的method類型, GET、POST、PUT、DELETE等
consumes:指定處理請求的提交內容類型(Content-Type),如application/json,text/html;
produces:指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回

@RequestParam:
用在方法的參數前面。
@RequestParam String a =request.getParameter("a")。

@PathVariable:
路徑變量。
如 RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}
參數與大括號里的名字一樣要相同

@ControllerAdvice:
包含@Component。可以被掃描到。統一處理異常。
@ExceptionHandler(Exception.class):
用在方法上面表示遇到這個異常就執行以下方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM