Giới Thiệu
Spring Boot là một trong những framework phổ biến nhất trong phát triển ứng dụng Java hiện đại. Với hàng triệu lập trình viên trên toàn thế giới, việc hiểu rõ các chú thích (annotations) của Spring Boot sẽ giúp bạn phát triển ứng dụng một cách hiệu quả hơn. Bài viết này sẽ giới thiệu 19 chú thích quan trọng trong Spring Boot, từ cấu hình ứng dụng đến xử lý yêu cầu HTTP.
Mục Lục
- 1. @SpringBootApplication
- 2. @RestController
- 3. @Controller
- 4. @GetMapping
- 5. @PostMapping
- 6. @PutMapping
- 7. @DeleteMapping
- 8. @Autowired
- 9. @Service
- 10. @Repository
- 11. @Component
- 12. @Entity
- 13. @Id
- 14. @GeneratedValue
- 15. @Configuration
- 16. @Bean
- 17. @RequestBody
- 18. @PathVariable
- 19. @RequestParam
- FAQ
- Kết Luận
1. @SpringBootApplication
- Đánh dấu lớp chính của một ứng dụng Spring Boot.
- Kích hoạt tự động cấu hình, quét thành phần và thiết lập cấu hình.
java
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
2. @RestController
- Đánh dấu một lớp là bộ điều khiển API REST.
- Kết hợp @Controller + @ResponseBody, cho phép trả về dữ liệu dưới dạng JSON.
java
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello Spring Boot!";
}
}
3. @Controller
- Đánh dấu một lớp là bộ điều khiển của Spring MVC.
- Sử dụng để phục vụ các trang web hoặc mẫu (như Thymeleaf).
java
@Controller
public class PageController {
@GetMapping("/home")
public String homePage() {
return "home"; // trả về home.html
}
}
4. @GetMapping
- Ánh xạ các yêu cầu GET HTTP đến một phương thức điều khiển.
java
@GetMapping("/users")
public List<User> getUsers() { ... }
5. @PostMapping
- Ánh xạ các yêu cầu POST HTTP đến một phương thức.
java
@PostMapping("/users")
public User createUser(@RequestBody User user) { ... }
6. @PutMapping
- Ánh xạ các yêu cầu PUT HTTP đến một phương thức để cập nhật tài nguyên.
java
@PutMapping("/users/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) { ... }
7. @DeleteMapping
- Ánh xạ các yêu cầu DELETE HTTP đến một phương thức để xóa tài nguyên.
java
@DeleteMapping("/users/{id}")
public void deleteUser(@PathVariable Long id) { ... }
8. @Autowired
- Tự động chèn các bean được quản lý bởi Spring.
java
@Autowired
private UserService userService;
9. @Service
- Đánh dấu một lớp là bean của lớp dịch vụ chứa logic nghiệp vụ.
java
@Service
public class UserService { ... }
10. @Repository
- Đánh dấu một lớp là lớp truy cập dữ liệu (DAO).
- Hỗ trợ biên dịch ngoại lệ cho các thao tác cơ sở dữ liệu.
java
@Repository
public interface UserRepository extends JpaRepository<User, Long> { }
11. @Component
- Chú thích chung cho bất kỳ bean nào được quản lý bởi Spring.
java
@Component
public class Utility { ... }
12. @Entity
- Đánh dấu một lớp là thực thể JPA ánh xạ đến một bảng cơ sở dữ liệu.
java
@Entity
public class User { ... }
13. @Id
- Đánh dấu khóa chính trong một thực thể JPA.
java
@Id
private Long id;
14. @GeneratedValue
- Cấu hình tạo tự động giá trị khóa chính (ví dụ: tự động tăng).
java
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
15. @Configuration
- Đánh dấu một lớp là nguồn định nghĩa bean.
java
@Configuration
public class AppConfig { ... }
16. @Bean
- Khai báo một bean bên trong một lớp cấu hình; được quản lý bởi Spring.
java
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
17. @RequestBody
- Ràng buộc thân yêu cầu HTTP (JSON) vào một đối tượng Java.
java
@PostMapping("/users")
public User createUser(@RequestBody User user) { ... }
18. @PathVariable
- Ràng buộc một biến đường dẫn URI đến một tham số phương thức.
java
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) { ... }
19. @RequestParam
- Ràng buộc các tham số truy vấn hoặc dữ liệu mẫu đến một tham số phương thức.
java
@GetMapping("/users")
public List<User> getUsers(@RequestParam int page, @RequestParam int size) { ... }
FAQ
1. Tại sao cần sử dụng @SpringBootApplication?
Nó giúp đơn giản hóa cấu hình bằng cách tự động kích hoạt các tính năng cần thiết cho ứng dụng Spring Boot.
2. Làm thế nào để sử dụng @Autowired?
Chỉ cần thêm chú thích @Autowired vào thuộc tính cần chèn và đảm bảo rằng bean đã được khai báo.
Kết Luận
Việc nắm vững 19 chú thích này sẽ giúp bạn xử lý hầu hết các câu hỏi phỏng vấn về Spring Boot. Chúng bao gồm:
- Thiết lập ứng dụng
- Bộ điều khiển REST
- Tiêm phụ thuộc
- Lớp dịch vụ và lớp kho
- Ánh xạ JPA / cơ sở dữ liệu
- Xử lý yêu cầu
Hãy bắt đầu áp dụng chúng vào dự án của bạn ngay hôm nay và nâng cao kỹ năng lập trình của mình!