วันเสาร์ที่ 6 มิถุนายน พ.ศ. 2558

Spring Boot ตอนที่ 2 Hello World

ต่อไปเรามาลองสร้าง Hello World โดยใช้ Spring Boot กันครับ ตัว Spring Boot ใช้ Servlet 3.0 เพราะฉะนั้นจะไม่มี web.xml แล้วนะครับ

1. Config Maven ด้วย
 
<properties>  
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
   <java.version>1.7</java.version>  
   <start-class>tutorial.spring4.StandAloneApp</start-class>  
</properties>  

<parent>  
   <groupId>org.springframework.boot</groupId>  
   <artifactId>spring-boot-starter-parent</artifactId>  
   <version>1.2.4.RELEASE</version>  
 </parent>  


 <dependencies>  
   <dependency>  
     <groupId>org.springframework.boot</groupId>  
     <artifactId>spring-boot-starter-web</artifactId>  
   </dependency>  
 </dependencies>  
     - Properties จะเป็นส่วนบอก Spring Boot ว่าทำงานอย่างไร
          - project.build.sourceEncoding บอกว่า source code ใช้ encoding อะไร
          - java.version บอกว่าจะใช้ Java Version อะไร
          - start-class คลาสที่จะให้รัน Initialize ขึ้นมา จาก Config หมายถึงจะวิ่งไปอ่าน StandAlone มาเพื่อรัน Spring ครับ

2.เราก็สร้าง Class StandAlone ใน package tutorial.spring4
 @SpringBootApplication  
 public class StandAloneApp extends SpringBootServletInitializer {  
      public static void main(String[] args) {  
           SpringApplication.run(StandAloneApp.class);  
      }  
 }  


     - @SpringBootApplication คือกรรวมกันของ 3 อย่าง @Configuration, @EnableConfiguration, @ComponentScan
     - extends SpringBootServletInitializer ถ้ารันด้วยตัว SpringBoot เองไม่ต้องใส่ก็ได้ครับ แต่ถ้าไปรันบน Server จะต้องใส่ไว้
     - SpringApplication.run(StandAloneApp.class) สั่งรันทำงาน จาก start-class

3. ต่อไปก็สร้าง Controller สำหรับรันได้เลยครับ โดย Class ทุกอย่างต้องอยู่ระดับที่ต่อจาก StandAloneApp คือหลังจาก tutorial.spring4
 @Controller  
 public class SampleController {  
   @RequestMapping("/")  
   @ResponseBody  
   String home() {  
     return "Hello World!";  
   }  
 }  

4. สั่งร้นได้จากตัว jar ได้เลยครับ โดย
     - mvn package ก่อน
     - java -jar target/xxx.jar รัน app ที่สร้างขึ้นมา

References
Basic
1. Spring Boot ตอนที่ 1 มาทำความรู้จักกับ Spring Boot
2. Spring Boot ตอนที่ 2 Hello World
3. Spring Boot ตอนที่ 3 โครงสร้างของ Project
4. Spring Boot ตอนที่ 4 Spring Boot กับ Thymeleaf
5.Spring Boot ตอนที่ 5 Spring Boot กับ Database [แบบ Embeded]
6.Spring Boot ตอนที่ 6 กับ Production Database
7.Spring Boot ตอนที่ 7 Security
8.Spring Boot ตอนที่ 8 Testing

8 comments:

Unknown กล่าวว่า...

สอบถามเพิ่มเติมหนอ่ยครับ ถ้าเราทำเป็น Web App แล้วบอกว่า สามารถ รัน standalone ได้นี้ ถ้าเป็นระบบระดับกลาง ๆ นี้จะเหมาะไหมครับ

และถ้าเราต้องการจัดการ resource อื่น ๆ นี้มีการจัดการ เหมือนทั่วไปหรือเปล่าครับ
เพราะเคยแต่เอาพวก JSP , JSTL , EL , CSS , JS , Image ไว้ ภายใต้ WebContent ครับ

แนะนำแนวทางหนอ่ยครับ

Naphachara Rattanwilai กล่าวว่า...

@Sarunyoo ได้ครับ เพราะสามารถรันเป็น Jar File ได้เลย ใช้ Concept Micro Service น่ะครับ ส่วนจะย้ายไปใช้ใน WebCntent ก็ได้แต่ต้องไปเพิ่มใน application.properties ครับ บอกได้ว่าให้ไปอ่านที่ไหน

ไม่ระบุชื่อ กล่าวว่า...

รบกวนอธิบายนิดนึงครับ ทำไมใช้ @Controller แทนที่จะเป็น @RestController

ไม่ระบุชื่อ กล่าวว่า...

ผมไม่ได้ให้หลังบ้านส่งออกมาเป็น rest น่ะครับ ui ผมจะเป็นพวก jsf, thymeleaf เอา ถ้าต้องการใฟ้ส่งมาเแน rest จะใช้ restcontroller แทน เอามาใช้กับพวก angular, react เป็นต้นครับ

ไม่ระบุชื่อ กล่าวว่า...

ระดับกลางๆ เหมาะครับ ส่วนี้จะเป็น backend สามารถปลักกับพวก jsf ได้เลยครับ

ไม่ระบุชื่อ กล่าวว่า...

ก็คือว่าตรง " Hello World! " เราก็ต้องสร้างhtmlชื่อ Hello World! ด้วยหรือเปล่าครับ พอดีเพิ่งศึกษาเบื้องต้นน่ะครับ ขอบคุณครับ

ไม่ระบุชื่อ กล่าวว่า...

อันนี้จะส่ง text ไปเลยครับ ถ้าหน้าจอส่วนถ้าจะทำ html มารับปกติจะretuurn เป็จ ModelAndView ครับ ถ้าจะใช้ก็จะมีพงก thymeleaf ที่เป็นหน้าจอของ spring จะผูกกันง่าย ปล
ตัวอย่างคือ springboot2 แนะนำไปใช้ springboot3 เลยครับ

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณครับ