- vừa được xem lúc

Spring Boot In Action: Beans

0 0 21

Người đăng: logbasex

Theo Viblo Asia

I. Introduction

Thực tế Spring Boot là một framework lớn và phức tạp, sử dụng rất nhiều abstraction nên việc hiểu được các khái niệm của nó không phải là điều dễ dàng gì. Nhưng cũng vì có nhiều abstraction layer nên chúng ta chỉ việc tuân theo Hollywood Priciple của nó để đỡ phải mất công reinventing the wheel và có nhiều thời gian hơn để build những gì chúng ta thích.

Don't call us, we'll call you

Chúng ta có thể thực hiện việc kết nối đến MySQL database như ví dụ sau bằng cách tuân theo những tiêu chuẩn có sẵn của Spring Boot mà thậm chí còn không biết khái niệm port trong khoa học máy tính là cái gì =)). Spring Boot bảo là cậu cứ làm theo chỉ dẫn của tớ là mọi việc sẽ đâu vào đấy.

1. Step 1

Cậu hãy tạo Configuration đi.

application.yml

spring: datasource: url: jdbc:mysql://localhost:3306/db_name username: db_username password: db_password driver-class-name: com.mysql.cj.jdbc.Driver jpa: database-platform: org.hibernate.dialect.MySQLDialect

2. Step 2

Sau khi có Configuration thì cậu hãy tạo bean để lúc nào cần còn dùng.

UserRepository.java

import org.springframework.data.jpa.repository.JpaRepository; @Repository
public interface UserRepository extends JpaRepository<User, Long> { // Define additional methods for custom database operations if needed
}

3. Step 3

Autowired depedency vào và sử dụng thôi. That's it.

UserService.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; @Service
public class UserService { @Autowired private UserRepository userRepository; // Use the repository methods for performing database operations public User getUserById(Long id) { return userRepository.findById(id).orElse(null); }
}

2. Analogy

Khi mới bắt đầu với Spring Boot, chúng ta hoàn toàn làm được những cái này thông qua một vài tutorial trên mạng nhưng có thể phần lớn trong số chúng ta cảm thấy khá lúng túng và khó hiểu. Hy vọng là qua analogy sau đây mọi người sẽ hiểu hơn về về ví dụ nêu trên.

Hãy hình dung về một người nông dân có một cánh đồng hoa màu. Người nông dân này chịu trách nhiệm gieo hạt, tưới nước và thu hoạch sau khi cây đã lớn. Nói chung là quản lý cánh đồng hoa màu đó. Khi đối chiếu với ứng dụng Spring Boot thì:

  • Người nông dân là Spring Boot application.
  • Cánh đồng là Application Context/IoC Container.
  • Cây trồng/hoa màu là Spring Boot's beans.
  • Các công cụ giúp người nông dân làm việc với cây trồng là depedencies.

Người nông dân gieo hạt (configurations/beans) trên cánh đồng (Application Context). Hạt phát triển thành cây trồng (beans) mà người nông dân sau đó có thể thu hoạch và sử dụng (inject depedency into other beans). Người nông dân sau đó lại cùng các công cụ (depedencies) để lại tiếp tục quá trình đó.

Trong ví dụ trên, quá trình gieo hạt chính là khai báo Configuration file và sau khi khai báo UserRepository sử dụng file này thì chúng ta có cây trồng hoàn chỉnh (bean). Khi đã có cây trồng (tức là bean đã tạo thành) thì việc thu hoạch và sử dụng chính là việc autowired UserRepository vào UserService, nó cho phép việc thao tác/tạo sự thay đổi trên cơ sở dữ liệu.

===

Thanks for reading.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tổng hợp các bài hướng dẫn về Design Pattern - 23 mẫu cơ bản của GoF

Link bài viết gốc: https://gpcoder.com/4164-gioi-thieu-design-patterns/. Design Patterns là gì. Design Patterns không phải là ngôn ngữ cụ thể nào cả.

0 0 302

- vừa được xem lúc

Học Spring Boot bắt đầu từ đâu?

1. Giới thiệu Spring Boot. 1.1.

0 0 277

- vừa được xem lúc

Cần chuẩn bị gì để bắt đầu học Java

Cần chuẩn bị những gì để bắt đầu lập trình Java. 1.1. Cài JDK hay JRE.

0 0 50

- vừa được xem lúc

Sử dụng ModelMapper trong Spring Boot

Bài hôm nay sẽ là cách sử dụng thư viện ModelMapper để mapping qua lại giữa các object trong Spring nhé. Trang chủ của ModelMapper đây http://modelmapper.org/, đọc rất dễ hiểu dành cho các bạn muốn tìm hiểu sâu hơn. 1.

0 0 194

- vừa được xem lúc

[Java] 1 vài tip nhỏ khi sử dụng String hoặc Collection part 1

. Hello các bạn, hôm nay mình sẽ chia sẻ về mẹo check String null hay full space một cách tiện lợi. Mình sẽ sử dụng thư viện Lớp StringUtils download file jar để import vào thư viện tại (link).

0 0 71

- vừa được xem lúc

Deep Learning với Java - Tại sao không?

Muốn tìm hiểu về Machine Learning / Deep Learning nhưng với background là Java thì sẽ như thế nào và bắt đầu từ đâu? Để tìm được câu trả lời, hãy đọc bài viết này - có thể kỹ năng Java vốn có sẽ giúp bạn có những chuyến phiêu lưu thú vị. DJL là tên viết tắt của Deep Java Library - một thư viện mã ng

0 0 139