Search…

Tổng Hợp Spring Annotation

14/06/20213 min read
Bài viết tổng hợp và tóm tắt các Spring Annotation được sử dụng trong Java Spring Framework như @Controller, @Component, @Respository, @Bean...

Spring Annotation được thiết kế rất đa dạng, hỗ trợ cho việc phát triển ứng dụng Spring tiện dụng hơn, tuy nhiên vì sự đa dạng này làm cho việc tiếp cận Spring ban đầu có phần chậm, sau đây là các tóm tắt ngắn gọn về các Annotation sử dụng trong Java Spring.

Spring Boot and Web annotations

@SpringBootApplication

Vị trí: đặt trước class.

Công dụng: là 1 tổng hợp (có ý nghĩa tương đương) từ 3 annotation: @Configuration, @EnableAutoConfiguration@ComponentScan.

@EnableAutoConfiguration

Vị trí: đặt trước class.

Công dụng: cho phép Spring tự nạp cấu hình dựa trên biến môi trường (classpath).

@Controller

Vị trí: đặt trước class.

Công dụng: đánh dấu class là 1 web controller, đón nhận và xử lý các yêu cầu từ client.

@RestController

Vị trí: đặt trước class.

Công dụng: là tổng hợp (có ý nghĩa tương đương) từ 2 annotation @Controller@ResponseBody.

@ResponseBody

Vị trí: đặt trước class hoặc method.

Công dụng: được sử dụng chung với @Controller, yêu cầu Spring trả về dữ liệu trong body thay vì là 1 trang web hoàn chỉnh.

@RequestMapping

Vị trí: đặt trước method.

Phương thức chỉ định trong controller, dùng để chỉ định HTTP Request cho 1 URL.

@RequestParam

Vị trí: đặt trước tham số của method trong class của controller.

Công dụng: phân tách và truyền giá trị từ query parameter, form parameter, file vào tham số của phương thức.

@PathVariable

Vị trí: đặt trước tham số của method trong class của controller.

Công dụng: phân tách và truyền giá trị trong path của URI đến tham số của phương thức.

Spring Cloud Annotations

@EnableConfigServer

Vị trí: đặt trước class.

Công dụng: đưa ứng dụng đặt trong server trở thành nơi lưu trữ các thông số mà các ứng dụng khác có thể lấy. 

Các ứng dụng khách sử dụng spring.application.cloud.config.uri trong @SpringBootApplication để lấy cài đặt của server.

@EnableEurekaServer

Vị trí: đặt trước class.

Công dụng: chuyển các ứng dụng thành dịch vụ Eureka, các ứng dụng khác có thể đặt tại nó.

@EnableDiscoveryClient

Vị trí: đặt trước class.

Công dụng: ứng dụng của bạn có thể đăng ký trong các server, và được kết nối  với các dịch vụ khác thông qua nó.

@EnableCircuitBreaker

Vị trí: đặt trước class.

Thiết lập giao thức ngắt Hystrix

@HystrixCommand(fallbackMethod = "fallbackMethodName")

Vị trí: đặt trước method.

Công dụng: đánh dấu phương thức fallback nếu không thực thi thành công.

Spring Framework annotations

@Configuration

Công dụng: đánh dấu class dùng để cấu hình, có thể tạo được các bean thông qua @Bean.

@ComponentScan

Vị trí: đặt trước class có cấu hình trước @Configuration.

Công dụng: Spring có thể quét các gói cho các class @Configuration.

@Bean

Vị trí: đặt trước method trong 1 class có cấu hình @Configuration.

Công dụng: tạo ra 1 đối tượng được quản lý bởi Spring container.

@Component

Vị trí: đặt trước class.

Công dụng: chuyển đổi class thành Spring bean vào lúc Spring quét.

@Service

Vị trí: đặt trước class.

Công dụng: kế thừa từ @Component, đánh dấu 1 class là 1 service dùng để thực thi các bussiness của ứng dụng.

@Autowired

Vị trí: đặt trước field, constructor hoặc method.

Công dụng: đánh dấu để Spring’s depency injection tích hợp các bean vào.

@Lazy

Vị trí: đặt trước class hoặc method.

Công dụng: @Bean hoặc @Component có thể khởi tạo khi được yêu cầu thay vì khởi tạo toàn bộ khi Spring khởi động.

@Qualifier

Vị trí: đặt trước field, constructor hoặc method.

Công dụng: nếu có nhiều hơn 1 bean có cùng kiểu dữ liệu, có thể chỉ định chính xác bean cần tích hợp khi sử dụng cùng @Autowired.

@Value

Vị trí: đặt trước field, constructor hoặc method.

Công dụng: biểu thị giá trị mặc định cho trường hoặc thông số, đơn giản như "#{systemProperties.myProp}".

@Required

Vị trí: đặt trước field, constructor hoặc method.

Công dụng: được áp dụng cho phương thức setter của thuộc tính bean và do đó làm cho setter-injection là bắt buộc. Chú thích này chỉ ra rằng thuộc tính bean được yêu cầu phải được đưa vào t 1 trị tại thời điểm cấu hình.

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024