Bài 02: Tổng quan về Spring, Spring Boot và sử dụng Spring Initializr

Bài này giới thiệu tổng quan về Spring, các features của Spring, sau đó là ứng dụng Spring Boot và cách sử dụng Spring Initializr

Spring Framework

Spring framework là framework dùng cho việc phát triển các ứng dụng web (chủ yếu) được cung cấp bởi Pivotal Software chạy trên JRE

Features

  • Lightweight: Spring nhẹ về kích thước và có tính minh bạch cao.
  • Inversion Of Control (IOC): Trong spring framework, các thành phần được kết nối với nhau bởi IOC thay vì phải tự liên kết với nhau.
  • Aspect Oriented Programming (AOP): Bằng các phân tách các nghiệp vụ của ứng dụng khỏi các ghiệp vụ hệ thống, spring framework cho phép lập trình hướng khía cạnh và phát triển đồng thời.
  • Container: Spring framework tự khởi tạo, cấu hình và quản lý các đối tượng trong ứng dụng.
  • MVC Framework: Spring là một framework ứng dụng web MVC, được cấu hình thông qua các interface và cho phép đa hiển thị.
  • Transaction Management: Đối với việc quản lý các transaction, Spring framework cung cấp các lớp trừu trượng chung.
  • JDBC Exception Handling: Lớp trừu tượng JDBC của Spring framework cung cấp hệ thống Exception phân cấp, cho phép xử lý lỗi hiệu quả.

Spring Boot

Spring Boot là ứng dụng cho phép thiết lập và lập trình ứng dụng trên Spring Framework nhanh nhất có thể và giảm thiểu tối đa công sức cho người phát triển.

Note: Hầu hết các bài viết trong series này đều dùng Spring Boot

Spring Initializr

Spring Initializr giúp khởi tạo project sử dụng Spring Boot nhanh chóng. Click here

Hello World với Spring Initializr

Truy cập vào trang Spring Initializr qua địa chỉ https://start.spring.io
Nhập liệu như sau:
  • Generate a Gradle Project with Java and Spring Boot 2.0.1
  • Group com.hocspringcoban
  • Artifact post02_helloworld
  • Search for dependencies Web
Nhấn Generate Project để tải về
Cây thư mục sẽ giống như bài trước. Trong đó file build.gradle sẽ được auto config như sau:
buildscript {
    ext {
        springBootVersion = '2.0.1.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.hocspringcoban'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Xây dựng Post02HelloworldApplication.java
package com.hocspringcoban.post02_helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Post02HelloworldApplication {

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

    @RequestMapping("/")
    public String helloworld() {
        return "Hello World!";
    }
}

Ghi chú

  • Các dòng lệnh bắt đầu với '@' gọi là các Annotation, các chú thích
  • @SpringBootApplicaiton khai báo class bên dưới là một Spring Boot Application
  • @RestController khai báo class bên dưới là một Controller Restful
  • @RequestMapping("/") khai báo nội dung sẽ trả về khi người dùng truy cập vào "/" của trang web
  • Chi tiết xem thêm tại đây: Spring Boot Reference Guide
Tại thư mục post02_helloworld, chạy lệnh gradle build để build project
Tại thư mục post02_helloworld, chạy lệnh gradle bootRun để run project.
Truy cập http://localhost:8080 để xem thành quả

Note: gradle run sẽ không hoạt động vì không có task run, thay vào đó là task bootRun được Spring Initializr tự tạo để phân biệt với task Run thông thuường

Nhận xét

Bài đăng phổ biến từ blog này

Bài 01: Xây dựng ứng dụng Java bằng Gradle

Bài 04: Kết nối Spring với cơ sở dữ liệu MySQL