Spring Boot là gì? Giới thiệu Spring Boot Framework

Spring Boot là gì? Giới thiệu Spring Boot Framework.

Mặc dù Spring là một Framework tuyệt vời để phát triển phần mềm nhưng nó vẫn tồn tại một số nhược điểm / hạn chế (Quá nhiều cấu hình…)

Spring Boot được xây dựng để khắc phục những nhược điểm đó, đồng thời cũng cung cấp một hướng phát triển phần mềm mới trong tương lai.

1. Spring Boot là gì?

  • Spring Boot là một module của Spring Framework, cung cấp tính năng RAD (Rapid Application Development) – Phát triển ứng dụng nhanh.
  • Spring Boot được dùng để tạo các ứng dụng độc lập dựa trên Spring.
  • Spring Boot không yêu cầu cấu hình XML
  • Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer.

Spring Boot là gì? Giới thiệu Spring Boot Framework

2. Ưu điểm của Spring Boot.

  • Có các tính năng của Spring Framework.
  • Tạo ứng dụng độc lập, có thể chạy bằng java -jar (cho cả java web)
  • Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR
  • Cấu hình ít, tự động cậu hình bất kì khi nào có thể (Giảm thời gian viết code, tăng năng suất)
  • Không yêu cầu XML config…
  • Cung cấp nhiều plugin
  • Chuẩn cho Microservices (Cloud support; giảm việc setup, config; các thư viện hỗ trợ…)

Spring Boot là gì? Giới thiệu Spring Boot Framework

3. Các features  (tính năng, đặc điểm) của Spring Boot.

3.1. SpringApplication

SpringApplication là một class cung cấp cách thuận tiện để khởi chạy ứng dụng từ hàm main().

Để start ứng dụng, chỉ cần gọi method run().

Ví dụ:

public static void main(String[] args) {
  SpringApplication.run(SpringBootHelloApplication.class, args);
}

3.2. Externalized Configuration

Spring Boot cho phép chúng ta cấu hình từ bên ngoài (externalize), do đó một ứng dụng có thể chạy trên nhiều môi trường khác nhau.

Chúng ta có thể sử dụng file YAML, file properties, các biến môi trường và tham số command-line để thực hiện  externalize configuration.

Các thuộc tính cấu hình có thể inject trực tiếp vào bean bằng cách sử dụng annotation @Value hoặc thông qua object với @ConfigurationProperites

Ví dụ:

import org.springframework.stereotype.*
import org.springframework.beans.factory.annotation.*

@Component
public class MyBean {

    @Value("${name}")
    private String name;

    // ...

}

3.3. Profiles

Spring Boot Profiles cung cấp một cách để phân chia các cấu hình cho mỗi môi trường. Các annotation @Component hoặc@Configuration có thể được đánh dấu @Profile để giới hạn khi nào được tải lên.
Ví dụ chỉ tải trong môi trường product…

@Configuration
@Profile("production")
public class ProductionConfiguration {

  // ...

}

 3.4. Logging

Spring Boot sử dụng common logging cho tất cả các chức năng log nội bộ.

Các depencdeny logging được quản lý mặc định, chúng ta không nên / cần sửa dependency logging nếu khồng có yêu cầu tùy biến (customization) thực sự cần.

3.5. Developing Web Applications

3.6. Security

3.7. Working with SQL Databases

3.8. Working with NoSQL Technologies

  • Redis
  • MongoDB
  • Neo4j
  • LDAP
  • Solr

3.9. Caching

  • EhCache
  • JCache

3.10. Messaging

3.11. Calling REST Services with RestTemplate

3.12. Calling REST Services with WebClient

3.13. Validation

3.14. Sending Email

3.15. Distributed Transactions with JTA

3.16. Hazelcast

3.17. Quartz Scheduler

3.18. Spring Integration

3.19. Spring Session

3.20. Monitoring and Management over JMX

3.21. Testing

3.22. WebSockets

3.23. Web Services

3.24. Creating Your Own Auto-configuration

 

Hầu hết các tính năng trên Spring Boot đều lấy từ Spring Framework và thêm một số tính năng khác.

Các bạn đọc qua để biết các định nghĩa và tính năng, sau đó làm ví dụ thì sẽ hiểu hơn (nhiều cái định nghĩa, liệt kê ra đọc thấy khó hiểu quá  🙄 )

Spring Boot là gì? Giới thiệu Spring Boot Framework

Okay, Done!

Các phần tiếp theo mình sẽ lần lượt làm các ví dụ về các tính năng của Spring Boot.

References:

https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/

https://spring.io/guides/gs/spring-boot/

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-introducing-spring-boot.html

https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-first-application.html

stackjava.com