spring boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/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! Sun, 13 Nov 2022 14:57:34 +0000 vi hourly 1 //wordpress.org/?v=6.4.1 //westview-heights.com/wp-content/uploads/cropped-logo-fpt-32x32.png spring boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tag/spring-boot 32 32 spring boot Archives - Cao Đẳng FPT M?ng c c??c bng ? xét tuyển //westview-heights.com/tin-tuc-poly/blog/spring-boot-va-nhung-dieu-can-biet.html //westview-heights.com/tin-tuc-poly/blog/spring-boot-va-nhung-dieu-can-biet.html#respond Sun, 13 Nov 2022 14:57:34 +0000 //westview-heights.com/?p=200447 Bạn đã biết gì v?Spring Boot? Cùng tìm hiểu thêm thông tin v?h?sinh thái Spring framework có gì đặc biệt qua bài viết dưới đây nhé! Spring Boot là gì?  Spring Boot là một d?án phát ...

The post Spring Boot và những điều cần biết appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
Bạn đã biết gì v?Spring Boot? Cùng tìm hiểu thêm thông tin v?h?sinh thái Spring framework có gì đặc biệt qua bài viết dưới đây nhé!

Spring Boot là gì? 

Spring Boot là một d?án phát triển bởi JAV (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, ch?tập trung vào việc phát triển business cho ứng dụng.

Tạo và triển khai CRUD trong project Spring Boot

?thời điểm hiện tại Spring Boot có l?đang là framework nổi tiếng và được s?dụng nhiều bậc nhất trong phát triển các ứng dụng s?dụng ngôn ng?Java. Đượ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,…

Tất c?điều này đã tạo nên một sức lôi cuốn vô cùng lớn đố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 của nó đang rất nhiều. Không ch?vậy, hiện tại có nhiều công ty cũng đang dần chuyển t?Spring qua Spring Boot cho các d?án cũ và các d?án mới s?dùng hẳn Spring Boot.

  • 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 khởi tạo project maven với các dependency như sau:

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

Cấu trúc project Spring Boot

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?client
  • Mapper: dùng đ?convert qua lại giữa entity và dto (không có cũng được)
  • Exception Hanlder: x?lý các exception xảy ra trong quá trình thực thi yêu cầu của client

D?án sau khi được hoàn thành s?có cấu trúc như th?này. Bây gi? chúng ta s?bắt đầu đi từng phần một.

  • Domain layer

Đối với hầu hết các d?án, 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, 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 viết này, chúng ta 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ì 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 khuôn kh?bài viết này, định nghĩa một User entity có th?làm như sau:

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 mình s?dụng đ?giảm thiểu việc triển khai các method getter, setter, constructor,…

  • 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.

  • Service Layer

Như đã đ?cập trước đó, 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. 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.

Các bạn thấy cách làm này có “k?cục” không? Tại sao chúng ta không tạo luôn UserService class rồi triển khai code trong đó? Điều này hoàn toàn được, tuy nhiên các bạn cần phải 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 chúng ta đang có UserService và UserServiceImpl hoạt động ổn. V?sau này, 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 như implement UserService và triển khai code tách bạ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.

Chú ý: 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(), 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.

  • 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 ứ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?

  • Controller Layer

Đến layer cuối cùng dùng đ?nhận các request t?client, 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.

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.

Như 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. Hy vọng các bạn có th?áp dụng thành thạo những kiến thức đã chia s??bên trên!

B?môn Ứng dụng phần mềm

Cao đẳng FPT M?ng c c??c bng ? Hà Nội

The post Spring Boot và những điều cần biết appeared first on Cao Đẳng FPT M?ng c c??c bng ? xét tuyển.

]]>
//westview-heights.com/tin-tuc-poly/blog/spring-boot-va-nhung-dieu-can-biet.html/feed 0