เริ่มต้นกับ Spring Boot part 3 สร้าง Spring Boot controller

ต่อจากบทความในครั้งที่แล้ว เริ่มต้นกับ Spring Boot part 2 ใช้งาน Gradle ในการ manange external library

ให้เราไปที่ Project window เลือก folder src/main/java สร้าง package ชื่อว่า com.codesanook.springclinic

(project ที่เราจะสร้างกันใน series นี้จะเป็น web application จัดการฐานข้อมูลผู้ป่วย Hospital Number ใน Clinic ครับ)

เลือก package ที่เพิ่งสร้างไป > สร้าง JavaClass ชื่อว่า HomeController

image-5

เพิ่มคำสั่งต่อไปนี้เข้าไปใน HomeController.java

package com.codesanook.springclinic;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@EnableAutoConfiguration
public class HomeController {

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


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

อธิบายการทำงานของคำสั่งต่างๆ

  • @Controller เป็น Java Annotation เพื่อบอก Spring framework ว่าจะใช้ class เป็น Controller class ที่สามารถ handle HTTP request , response ได้ โดยตาม pattern MVC ที่จะได้เรียนรู้ต่อไป
  • @EnableAutoConfiguration เป็นการกำหนดเพื่อเปิดใช้งาน configuration ต่างๆ ที่ SpringBoot เตรียมมาให้แล้ว

ภายใน class ก็มี Annotation กำหนดไว้ที่ method ต่างๆ ดังนี้

  • @RequestMapping กำหนด pattern ของ URL ที่เมื่อถูกเรียกใช้งาน ก็จะมาเรียก method นี้โดยอัตโนมัติ กล่าวคือถ้า เปิดหน้าเว็บด้วย URL / เช่น yourdomain.com/ method hello ก็จะถูกเรียกโดยอัตโนมัติ
  • เนื่องจาก ทุก Application ของ Java ต้องมี entry point (code ที่ถูกเรียกใช้งานที่แรกตอน program start) Spring Boot ก็เช่นเดียวกัน แม้จะเป็น web framework entry point ก็ถูกสร้างไว้ใน main method และถูกเรียกเมื่อเรา run application ขึ้นมา โดยใน method นี้มีคำสั่ง SpringApplication.run(HomeController.class, args); เป็น การ initialize Spring project กล่าวคือเป็นการสร้าง ojbect ต่างๆ ที่จำเป็นสำหรับ Spring Web application เพื่อให้สามารถทำงานได้ครับ ถ้าจำกันได้ OOP ก็คือการให้ object ที่ถูกสร้างขึ้นมา มาทำงานมาคุยกัน ซึ่ง Spring Framework ก็เขียนตามแนวคิด OOP เช่นกัน เพราะจริงๆ แล้ว Spring ถูกเขียนด้วย Java ที่เป็นภาษา OOP แบบเต็มรูปแบบ

ทดลอง run application โดยใช้ Gradle Windows, double click task run

image-2

จะมีหน้าต่าง run แสดงขึ้นมาที่ด้านล่างของ IDE พร้อม logging สถานะของ Application และบอก port number ของ web ที่แสดงอยู่

image-3

เปิด browser ไปที่ URL http://localhost:8080 ผลลัพธ์ที่ได้

image-4

เสร็จแล้วครับ Hello Word Spring Boot มีความเห็นขอสงสัยใดๆ ฝาก comment มาได้เลยครับ ขอบคุณท่านนักอ่านทุกท่าน happy coding

download source code

https://github.com/codesanook/spring-clinic