Tạo Crud trên Spring Boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/tao-crud-tren-spring-boot Cao Đẳng FPT M?ng c c??c bng ? tuyển sinh theo hình thức xét tuyển h?sơ. Tiêu chí đào tạo: Thực học ?Thực nghiệp! Thu, 22 Jun 2023 15:03:39 +0000 vi hourly 1 //wordpress.org/?v=6.4.1 //westview-heights.com/wp-content/uploads/cropped-logo-fpt-32x32.png Tạo Crud trên Spring Boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/tao-crud-tren-spring-boot 32 32 Tạo Crud trên Spring Boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/spring-boot-la-gi-cach-tao-crud-trong-du-an-spring-boot.html //westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/spring-boot-la-gi-cach-tao-crud-trong-du-an-spring-boot.html#respond Mon, 19 Jun 2023 09:40:41 +0000 //westview-heights.com/?p=238076 Spring Boot là gì? Làm th?nào đ?tạo Crud trong d?án Spring Boot? Hãy cùng tìm hiểu ?bài viết này nhé! Spring Boot là một d?án phát triển bởi Java (ngôn ng?java) trong h?sinh ...

The post Spring Boot là gì? Cách tạo Crud trong d?án Spring Boot appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
Spring Boot là gì? Làm th?nào đ?tạo Crud trong d?án Spring Boot? Hãy cùng tìm hiểu ?bài viết này nhé!

Spring Boot là một d?án phát triển bởi Java (ngôn ng?java) trong h?sinh thái Spring framework. Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá trình lập trình một ứng dụng với Spring và tập trung vào việc phát triển business cho ứng dụng.

?thời điểm hiện tại, Spring Boot có l?đang là framework nổi tiếng và được s?dụng ph?biến nhất trong phát triển các ứng dụng s?dụng ngôn ng?Java. Ứng dụng được xây dựng trên nền tảng Spring framework nó có tất c?các tính năng của Spring cộng thêm những tiện ích mà nó mang lại như giảm thiểu các bước cấu hình phức tạp, nhúng server container (Tomcat, Jetty hoặc Undertow) t?động vào ứng dụng giúp chúng ta có th?khởi chạy một ứng dụng ngay lập tức, quản lý dependence thông minh v.v.

Tất c?điều này đã tạo nên s?ưa thích đối với cộng đồng developer trên khắp th?giới, các công ty cũng đang dần chuyển sang dùng Spring Boot cho các d?án tiếp theo. Lựa chọn học Spring Boot ?thời điểm hiện tại là một quyết định đúng đắn vì th?trường việc làm đang rộng m?hơn rất nhiều. 

Cách tạo và triển khai Crud trong project Spring Boot

  1. Khởi tạo project Spring Boot

Đ?khởi tạo một project Spring Boot nhanh chóng các bạn có th?truy cập vào trang Spring Initializr và lựa chọn các thông s?cấu hình cho d?án, cũng như các dependency cần thiết. Hoặc có th?khởi tạo project maven với các dependency như sau.

Nếu dùng Spring Initializr, các bạn có th?thêm các dependency này bằng chọn Add dependencies ?tab Dependencies. 

Khởi tại Spring Boot

Cấu trúc project Spring Boot

Bao gồm:

  • Trong một project Spring Boot thường s?có các layer chính
  • Domain: chứa các ánh x?database ?entity
  • Repository: định nghĩa các DAO (Data access object) class dùng đ?làm việc với database
  • Service: chứa các business logic class
  • Controller: nhận request t?khách hàng
  • Mapper: dùng đ?convert qua lại giữa entity và dto (có th?có hoặc không)
  • Exception Hanlder: x?lý các exception xảy ra trong quá trình thực thi yêu cầu của khách hàng
Spring Boot Crud

D?án khi hoàn thành s?có cấu trúc như th?này. Hãy bắt đầu đi từng phần một. Đừng lo, vì bài viết này s?upload code đ?các bạn d?dàng thực hành!

Domain layer

Đối với hầu hết các d?án thì chúng ta thường bắt đầu với domain layer trước, sau khi đã phân tích thiết k?cơ s?d?liệu xong thì chúng ta s?đến bước định nghĩa các entity ánh x?các table tương ứng dưới database.

Trong bài demo này dùng H2 database, các bạn có th?linh hoạt s?dụng các database khác như SQL, MySQL, Mariadb tùy ý. Vì bài demo đã s?dụng JPA và JPA provider bên dưới là Hibernate nên có th?d?dàng chuyển đổi qua lại giữa các database mà code không b?ảnh hưởng.

Trong nội dung bài viết này  s?ch?định nghĩa một User Entity như sau:

User entity

Các Entity class phải được chú thích với @Entity annotation, ngoài ra các annotation khác của lombok được s?dụng đ?giảm thiểu việc triển khai các method getter, setter, constructor v.v

Repository Layer

Đây là layer chúng ta định nghĩa các DAO class dùng đ?thao tác với database. Tuy nhiên trong phần này chúng ta không cần phải triển khai các method cơ bản như là findById(), findAll, save(), delete(), update() vì chúng đã được triển khai thông qua một tầng abstraction được đặt ?trên JPA implementation.

Đ?s?dụng các tính năng cơ bản này chúng ta ch?cần khai báo một Repository class thừa k?t?CrudRepository.

Repository Layer

Service Layer

Như đã đ?cập trước đó thì Service layer s?là nơi chứa các business chính của d?án, là cầu nối giữa Controller layer và Repository layer.

Với một ứng dụng Crud thì chúng ta cần ít nhất các method dùng cho việc thêm, sửa, xóa, cập nhật và tìm kiếm. Chúng ta s?đi qua từng phần này sau đây: 

Trước tiên chúng ta cần định nghĩa một UserService Interface và một UserServiceImpl class dùng đ?triển khai các method định nghĩa trong UserService.

Service Layer

Và…

Service Layer

Các bạn có thấy cách làm này có hơi mất thời gian không? Sao không tạo luôn UserService class rồi triển khai code trong đó luôn? Điều này hoàn toàn được, tuy nhiên các bạn nên biết đây là một cách làm giúp tăng tính m?rộng code.

Gi?s?hiện tại, UserService và UserServiceImpl đang hoạt động ổn. V?sau, chúng ta cần chỉnh sửa một s?tính năng trong UserServiceImpl đ?tăng performance hoặc adapt cho phù hợp với business mới. Nhưng do UserServiceImpl đã được phát triển qua một thời gian dài nên việc sửa code trong này rất khó khăn, lúc đó chúng ta có th?tạo ra một UserServiceImplNew mới cũng implement UserService và triển khai code tách khỏi UserServiceImpl.

Sau đó, chúng ta ch?cần thay đổi việc s?dụng UserServiceImplNew thay vì UserServiceImpl mà không cần chỉnh sửa code ?những ch?khác. 

Những ch?khác đang s?dụng UserServiceImpl mà không có nhu cầu chỉnh sửa thì vẫn có th?s?dụng. Do không có chỉnh sửa gì trên UserServiceImpl nên chúng ta yên tâm là các tính năng s?vẫn hoạt động như cũ.

Create

Đến với chức năng đầu tiên, chúng ta cần tạo một hàm createUser dùng đ?tạo và lưu một record User xuống database.

Các bạn có th?tùy ý thêm các mã kiểm tra khác như email có hợp l?không? email có tồn tại trước đó hay chưa? Sau đó s?dụng method save() đ?lưu xuống database.

Lưu ý rằng khi s?dụng H2 trong project Spring Boot thì mặc định nó đã cấu hình t?động cho bạn s?dụng một database H2-mem, nghĩa là khi tắt ứng dụng thì d?liệu s?b?mất.

Update

Với hàm update() thì client cần truyền cho chúng ta ID của user muốn cập nhật và một User object chứa các thông tin được cập nhật.

Update

Delete

Tính năng này khá đơn giản, chúng ta s?nhận vào một User ID và xóa User trong database có ID tương tứng. 


Find

S?có 2 method thường được dùng là tìm kiếm theo ID hoặc lấy tất c?

Tìm kiếm ID

Controller Layer

Đến layer cuối cùng dùng đ?nhận các yêu cầu t?khách hàng, chúng ta s?cần đến @RestController annotation đ?đánh dấu một class là một controller, và @RequestMapping, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping đ?ch?định các endpoint c?th?cho các API.

Controller Layer

Trong đó các bạn cần chú ý @RequestBody dùng đ?parse request body sang User object t?động và @PathVariable dùng đ?parse ID t?Path parameter.

Vậy là chúng ta đã biết cách xây dựng một ứng dụng Spring Boot đơn giản với các tính năng Crud cơ bản nhất mà một ứng dụng cần có. Bên cạnh đó chúng ta cũng biết cách s?dụng các annotation đ?ánh x?d?liệu và tạo ra các endpoint cho ứng dụng. Chúc các bạn thành công!

B?môn Ứng dụng phần mềm
Trường Cao đẳng FPT M?ng c c??c bng ? cơ s?Hà Nội

The post Spring Boot là gì? Cách tạo Crud trong d?án Spring Boot appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
//westview-heights.com/tin-tuc-poly/ha-noi-tin-sinh-vien/spring-boot-la-gi-cach-tao-crud-trong-du-an-spring-boot.html/feed 0