แสดงบทความที่มีป้ายกำกับ J2EE แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ J2EE แสดงบทความทั้งหมด

วันอังคารที่ 1 ธันวาคม พ.ศ. 2558

LocalDate Java 8



LocalDate เป็น future java 8 ทำขึ้นมาเพื่อความสะดวกในการหาเรื่องเกี่ยววันเวลา ซึ่งสามารถเรียกการใช้งานได้อย่างง่ายดายมาก ดังตัวอย่างด้านล่างได้เลยครับ


package com.learningjava;

import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.ChronoUnit;

public class TestLocalDate {

    public static void main(String[] args) {
        LocalDate toDay  = LocalDate.now(); // today  -> instance /object
        System.out.println(toDay);//วันปัจจุบัน  yyyy-mm-dd
        System.out.println(toDay.getDayOfWeek());//วันปัจจุบันวันอะไร เช่น  MONDAY,Tuesday TUESDAY,WEDNESDAY
        System.out.println(toDay.getDayOfMonth());//วันปัจจุบัน เป็นวันที่เท่าไรของเดือน
        System.out.println(toDay.getDayOfYear());//วันปัจจุบัน เป็นวันที่เท่าไรของปี


        //สมมุติว่าเราต้องการวันที่ 99 ของปี 2015
        LocalDate day99  = LocalDate.ofYearDay(2015,99);
        System.out.println("วันที่ 99 ของปี 2015 คือ "+day99);//วันที่ 99 ของปี 2015


        //สมมุติว่าเราต้องการหาจำนวณวันที่จะถึงสิ้นปี ของปี 2015
        LocalDate endYear = LocalDate.of(2015, Month.DECEMBER,31);
        System.out.println("อีกกี่วันจะถึงสิ้นปี  "+toDay.until(endYear,ChronoUnit.DAYS));

        //สมมุติว่าเราต้องการหาวันเกิดของเรา
        LocalDate birthDate = LocalDate.of(1989, Month.APRIL,30);//ปี,เดือน,วันที่
        System.out.println("จำนวนวันนับตั้งแต่วันเกิด "+birthDate.until(toDay,ChronoUnit.DAYS));
        System.out.printf("อายุ %d ปี %d เดือน %d วัน", birthDate.until(toDay).getYears(), birthDate.until(toDay).getMonths(), birthDate.until(toDay).getMonths());
    }
}

วันจันทร์ที่ 16 พฤศจิกายน พ.ศ. 2558

Spring Batch TaskScheduler โดย Spring boot

       

       Spring Batch TaskScheduler  มีหน้าที่ทำให้การกระทำอย่างใดอย่างหนึ่งสั่งให้ทำงาน ณ ช่วงเวลาที่เรากำหนดได้ ไม่ว่าจะทำทุกๆ 5 นาที  ทำทุกๆ เทียงคืนของวันนั้นก้ได้ตามสบายใจที่กำหนดได้เลย หรือซึงโปรแกรมเมอร์ส่วนใหญ่คุ้นเคยกันดีนั้น คือ  Run batch file  ตามเวลาที่กำหนดนั้นเอง   โดยหลักการทำงานของเจ้าตัว TashkScheduler  อยู่ในรูแบบของ Thread (เทรด)  ซึงมันจะสแกนมีช่วง Thread นั้นๆ มันก้ทำงาน


โครงสร้างไฟล์โปรแกรม



ไฟล์ pom.xml  เพิ่ม dependencies  ดังนี้


 
  
   org.springframework.boot
   spring-boot-starter-batch
  
  
   org.springframework.boot
   spring-boot-starter-web
  
  
   org.springframework.boot
   spring-boot-starter-tomcat
   provided
  
  
   org.springframework.boot
   spring-boot-starter-test
   test
  
 

 
 - เพิ่ม annotation  @ComponentScan  เพื่อ scan package
 - เพิ่ม annotation  @EnableSchecduling   เพื่อเปิดใช้งาน Schecduling

















- เพิ่ม class  พร้อมกำหนด @Component เพื่อให้ spring รู้จักว่าเป็น componet class
- เพิ่ม  @Scheduled  บน method  พร้อมกำหนดค่า delay ในละช่วงเวลา ในตัวอย่างคือ 5 วินาที



เมื่อรันเสร็จก้จะได้ผลลัพธ์ออก log ดังนี้








ง่ายไหมละครับ ซึ่งตัวอย่างทำขึ้นแบบง่ายๆสามารถนำไปต่อยอดได้กันเลยทีเดียว  นะฮะ


วันพฤหัสบดีที่ 23 กรกฎาคม พ.ศ. 2558

Hibernate Framework


  1. Hibernate Framework ซึ่งเป็น ORM หรือ Object/Relational Mapping ที่มีความสามารถในการช่วยจัดการกับโปรแกรมที่อยู่ในรูปออบเจ็กต์ ให้สามารถใช้งานกับระบบฐานข้อมูลได้อย่างมีประสิทธิภาพ ไม่ว่าจะเป็น การสร้างตาราง การเพิ่ม ลบ แก้ไข ค้นหาข้อมูลต่างๆ ในฐานข้อมูล อาทิ MySQL, MSSQL, Oracle และอื่นๆ ซึ่งมีการใช้งานกันอย่างแพร่หลาย 

วันจันทร์ที่ 13 กรกฎาคม พ.ศ. 2558

Spring framework ความรู้เบื่องต้น

Spring เป็น framework ของ JEE (Java Enterprise Edition ) พัฒนาขึ้นโดย Rod Johnson ซึ่งหลังได้มีกลุ่มนักพัฒนาเข้ามาช่วยพัฒนาโดยตั้งเป็นกลุ่ม community  ขึ้น สำหรับนักพัฒนาสาย java  ซึ่งปัจจุบันนิยมมากของขา java dav เพราะมีความสามารถหลากหลาย ดังนี้

    - ไม่ว่าเป็นรูปแบบการเขียน code ที่สั้นขึ้นถ้าเทียบกับ framework ตัวอื่นๆ โดยมีการร่วมเอาหลายๆ อย่างที่ส่วนมากคนเขียนซ้ำๆ เอามาเรียกใช้งาน 
    - สามารถใช้ร่วมกับ framework ตัวอื่นเช่น struts,jsf,ejbได้โดย configuration ในรูบแบบของ xml หรือ แบบ java class 
    - สามารถจัดการ transaction ได้ดี
    - สามารถจัดการ security ได้ดี
    - สมารถจัดการแบ่งส่วนอย่างชัดเจน 3 Layer ตาม M-V-C Design Pattern
    - สามารถเขียนเทสแยกส่วนได้โดยใช้  jUnit
    - สามารถเชื่อมต่อฐานข้อมูลแบบ ORM (Object Relational Mapping) โดยสามารถเลือกใช้ Hibernate, JPA ,iBatis และค่ายอื่นๆ ได้
   - สามารถใช้ JDBC Tamplate ได้ดี
   - สามารถจัดการ Data เบื่องต้นได้เช่น CRUD เพื่อลดการเขียนซ้ำซ้อนโดยใช้ Spring Data JPA
   - รองรับการทำงาน Webflow
   - รองรับการทำงาน WebSocket
   - รองรับการทำงาน WebService , Mail
   - สนับสนุบการทำ IoC และ DI (Dependency Injection)  คือสามารถฉีด Bean เข้าส่วนต่างๆได้
   - สามารถใช้แท็ก Annotation ได้แทนรูปแบบ xml ได้ง่ายขึ้น