一:SpringBoot/Spring
註解 | 註解解析 |
@SpringBootApplication | 該註解包含了@Configuration,@EnableAutoConfiguration以及@ComponentScan註解,通常使用在主類上。 |
@Repository | 用戶標註數據庫訪問組件(接口),及DAO組件(接口)。 |
@Service | 用於標註業務層組件。 |
@RestController | 用於標註控制層組件(如Struts中的action),包含@Controlle以及@ResponseBody,請求相應的結果最終以Json格式返回。 |
@Controller | 用於標註控制層組件,需要返回頁面時使用的註解。 |
@Component | 泛指組件,當組件不好歸類的時候,我們可以使用這個註解進行標註。 |
@ResponseBody | 表示該方法的返回結果直接寫入HTTP response body中,一般在異步獲取數據時使用,在使用@RequestMapping後,返回值通常解析爲跳轉路徑。加上@ResponseBody後返回結果不會被解析爲跳轉路徑,而是直接寫入HttpResponseBody中,比如異步獲取Json數據時,加上@ResponseBody後,回直接返回json數據。 |
@RequestBody | 參數前加上這個註解之後,默認參數必填。表示接受的json字符串轉爲對象。 |
@ComponentScan | 組件掃描,如果存在@Component @Controller @Service等這些註解的累,被掃描後,就會將這些累註冊爲一個bean |
@Bean | 相當於在XML中,放在方法上並非類上,目的是產生一個bean,並交給Spring進行管理 |
@Configuration | 指出該類是Bean的配置信息源,相當於在XML中,一般加載主類上。 |
@EnableAutoConfigration | 讓SpringBoot根據應用所聲明的依賴來對Spring框架進行自動配置,一般加載主類上。 |
@AutoWired | byType方式,把配置好的Bean拿來用,完成屬性,方法的組裝,它可以對類成員變量,方法及構造函數進行標註,完成自動裝配的工作;當加上(required = false)時,當某個用到的bean不存在也不會報錯。 |
@Qualifier | 當有多個同一類型的Bean時,可以用@Qualifier("name")來指定。與@Autowired配合使用。 |
@Resource(name = "name", type = "type") | 沒有括號中的內容時,默認時byName。與@Autowired完成類似的工作。 |
@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)類型中包含該指定類型才返回。 |
@GetMapping/@PostMapping |
相當於@RequestMapping(value = “/” , method = RequestMethod.Get\Post\Put\Delete),它們時相應請求方式的組合註解 |
@RequestParam |
用在方法的參數前面,相當於request.getParameter();請求路徑如:https://www.baidu.com?macAddress=b public String getByMacAddress( |
@PathVariable |
同樣用在方法的參數前面,如RequestMapping(“user/get/mac/{macAddress}”) ; public String getByMacAddress( 請求的路徑:https://www.baidu.com/user/get/mac/macAddress的值。 參數與大括號中的名字相同的話,註解後括號裏的內容可以不填。 |
二: JPA
註解 | 註解的解釋 |
@Entity @Table(name = " ") |
這兩個註解一般一起使用來表明一個實體類,但是如果表名和實體類名相同的話,@Table可以省略。 |
@MappedSuperClass | 用來確定父類的entity上,父類的屬性子類可以繼承。 |
@NoRepositoryBean | 一般用作父類的repository,該註解是的spring不會去實例化該repository。 |
@Column | 如果字段名與數據庫中列名相同,可以省略,如果不相同該註解指定字段名與數據庫列名之間的映射。 |
@Id | 表示該屬性爲相對應表中的主鍵 |
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "repair_seq") | 表明主鍵生成策略是sequence(可以爲Auto(表示多個數據庫之間切換),IDENTITY,native等),指定sequence的名字是repair_seq; |
@SequenceGenerator(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中的一些屬性忽略掉,序列化和反序列化都受影響。 |
@JoinConlumn(name = "IoginId") |
一對一:本表中指向另一個表的外鍵 一對多:另一個表指向本表的外鍵 |
@OneToOne @OneToMany @ManyToOne |
對應Hibernate配置文件中的一對一,一對多,多對一 |
三:全局異常處理註解
註解 | 註解解釋 |
@ControllerAdvice | 包含@Component.可以被掃描到。捕獲controller層的異常進行統一處理; |
@ExceptionHandler(Exception.class) | 用在方法方法上表示遇到這個異常就會執行一下方法。 |
四:SpringCloud常用註解
註解 | 註解解釋 |
@EnableEurekaServer | 用在SpringBoot啓動類上,表示這是一個eureka服務註冊中心 |
@EnableDiscoveryClient | 用在SpringBoot啓動類上,表示這是一個服務,可以在註冊中心找到 |
@LoadBalanced | 開啓負載均衡能力 |
@EnableCircuitBreaker | 用在啓動類上,開啓斷路器功能 |
@HystrixCommand(fallbackMethod = "backMethod") | 用在方法上,fallbackMethod指定斷路回調方法 |
@EnableConfigServer |
用在啓動類上,表示這是一個配置中心,開啓Config Server; |
@EnableZuulProxy | 開啓Zuul路由,用在啓動類上; |
@SpringCloudApplication |
包含了@SpringBootApplication/@EnableDiscovertyClient/@EnableCircuitBreaker 分別時SpringBoot註解,註冊服務中心Eureka註解,斷路器註解。對於SpringCloud來說,這是每一個微服務必須應用的三個註解,而SpringCloudApplication註解是三者的組合註解,能夠達到三者同等的效果。 |
總結:紅色字體表示不經常使用的但是我們應該瞭解到註解!