Bắt đầu với Spring Boot

Spring Boot là một framework giúp đơn giản hóa việc phát triển ứng dụng Java, đặc biệt trong môi trường web. Nó kế thừa triết lý "convention over configuration" từ Spring, cho phép khởi chạy ứng dụng chỉ với vài dòng code.

Cách Spring đơn giản hóa Java

  • Sử dụng POJO và dependency injection để giảm độ phức tạp.
  • Tích hợp sẵn các thư viện phổ biến như Redis, MongoDB, JPA… mà gần như không cần cấu hình.
  • Hỗ trợ nhúng server (Tomcat, Jetty) để chạy ứng dụng độc lập.

Viết API đầu tiên

@RestController
public class ApiController {
    @GetMapping("/xin-chao")
    public String chao() {
        return "Xin chào Spring Boot!";
    }
}

Chạy ứng dụng và truy cập http://localhost:8080/xin-chao để xem kết quả.

Tùy chỉnh cổng và banner

Trong file application.properties:

server.port=9090

Tạo file banner.txt trong thư mục resources để thay đổi logo hiển thị khi khởi động.

Cấu trúc dự án cơ bản

  • pom.xml: Quản lý phụ thuộc, kế thừa từ spring-boot-starter-parent.
  • Main class: Có annotation @SpringBootApplication và phương thức main().
  • Thư mục resources: Chứa file cấu hình, static files, templates.

Cấu hình với YAML

File application.yml hỗ trợ cấu trúc phân cấp rõ ràng:

app:
  ten: "Jan"
  tuoi: 25
  so-thich:
    - lap-trinh
    - doc-sach
    - am-nhac

Gắn vào class Java bằng @ConfigurationProperties(prefix = "app").

Xác thực dữ liệu với JSR-303

@Component
@ConfigurationProperties(prefix = "nguoi-dung")
@Validated
public class NguoiDung {
    @Email(message = "Email không hợp lệ")
    private String email;

    @Min(value = 18, message = "Phải từ 18 tuổi trở lên")
    private int tuoi;
}

Môi trường đa cấu hình

Tạo file application-dev.ymlapplication-prod.yml, kích hoạt bằng:

spring.profiles.active=dev

Nguyên lý auto-configuration

Spring Boot tự động cấu hình dựa trên các điều kiện tại runtime, kiểm tra qua file META-INF/spring.factories. Bạn có thể ghi đè hoặc mở rộng cấu hình này dễ dàng.

Phát triển Web với Thymeleaf

Thêm phụ thuộc:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Đặt template trong src/main/resources/templates/ và trả về tên file từ controller.

Tích hợp bảo mật với Spring Security

@EnableWebSecurity
public class CauHinhBaoMat extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/").permitAll()
            .anyRequest().authenticated()
            .and().formLogin();
    }
}

Kết nối cơ sở dữ liệu

Sử dụng JdbcTemplate hoặc tích hợp MyBatis/Druid để quản lý kết nối và truy vấn.

API documentation với Swagger

Thêm phụ thuộc Swagger UI và cấu hình Docket để tự động sinh tài liệu API, hỗ trợ test trực tiếp trên trình duyệt.

Thẻ: spring-boot yaml Thymeleaf spring-security jdbc

Đăng vào ngày 26 tháng 6 lúc 01:21