Spring Framework คืออะไร?
- เป็น framework แบบ light-weight ที่ครอบคลุมสำหรับการสร้างแอปพลิเคชัน Java ประเภทต่างๆ เช่น
- Web application
- Enterprise application
- Standalone application
- Batch application
- Integration application
- Mobile application
Key Feature – DI
- Beans จะทำงานผ่าน Dependency Injection (DI)
- โดยมีเป้าหมายเพื่อจัดการกับ Beans
- ระบบการทำงานของ beans สามารถเข้าถึงได้จากทุกที่
- Spring MVC มีระบบการจัดการภายใน
Key Features – Persistence
- ครอบคลุมถึงการใช้ RDBMS
- มีชั้นเลเยอร์ที่ใช้สำหรับการเชื่อมต่อกันระหว่าง Database
- Higher abstraction over JDBC
- การรวมตัวกับ Persistence framework ทำให้เกิด Hibernate, JPA
- สนับสนุนการใช้ NoSQL
- MongoDB
Key Features – Web-Tier
- Spring MVC web application framework
- ถูกสร้างจากฟังก์ชันต่างๆใน Spring
- รองรับกับเทคโนโลยีต่างๆสำหรับการสร้าง views รวมทั้ง Thymeleaf, Velocity, Freemarker และ JSP เป็นต้น
- Spring Web Flow
- การนำทางไปสู่เว็บภายนอก
- สนับสนุน REST
- ง่ายต่อการสร้าง RESTful service
- Default over configuration
- ทุกอย่างสามารถกำหนดค่าได้และปรับแต่งได้
Key Features – AOP
- ครอบคลุม aspect-oriented programming (AOP) framework สำหรับการให้บริการ เช่น การจัดการธุรกิจ และการสนับสนุนด้านความปลอดภัย
- เหมือนกันกับ DI โดยมีเป้าหมายเพื่อปรับปรุง modularity ของระบบที่สร้างโดยใช้ framework
Key Features – Test
- สนับสนุนการทดสอบแบบ Unit Test และ Integration testing
- สนับสนุนทั้ง JUnit และ TestNG
- ทำการโหลด Spring application ให้มีความสม่ำเสมอและทำการ caching การกระทำต่างๆไว้
- ให้ object มาใช้ทดสอบโค้ด โดยจะแยกออกเป็นส่วนๆ
ทำไมถึงต้องใช้ Spring Framework
- Wiring components (Beans) through Dependency Injection (DI)
- สนับสนุนการรวมส่วนต่างๆมาประกอบกันเป็นโปรแกรม
- Design to Java interfaces
- มีฟังก์ชันป้องกัน user จากข้อมูลรายละเอียดการทำงานต่างๆ
- Test-Driven Development (TDD)
- ชั้นของ POJO สามารถทำการทดสอบได้โดยไม่ได้ยึดติดกับ framework
- Declarative programming through AOP
- ธุรกรรมและความปลอดภัยสามารถกำหนดค่าได้อย่างง่าย
- Simplify use of popular technologies
- ช่วยลดความซ้ำซ้อนของ application จากการลดความซ้ำซ้อนของโค้ดลง
- สามารถเข้าถึงเทคโนโลยีเฉพาะด้านได้
- สามารถจัดการกับข้อผิดพลาดทั่วไปได้
- Well designed
- ง่ายต่อการขยาย
- สามารถเรียก classes มาใช้ซ้ำได้
- Integration with other technologies (สามารถใช้งานร่วมกับเทคโนโลยีอื่นๆได้)
- JPA, Hibernate, JDBC (for data access)
- Thymeleaf, Velocity, etc. (for presentation)
- JSF, Wicket, Struts, etc (For web)
- AngularJS, jQuery, JavaScript (for front-end UI)
- ActiveMQ, AMQP (for messaging)
Spring Framework Architecture
Usage Scenarios (สถานการณ์การใช้งาน)
- สามารถใช้ Spring ได้ทุกรูปแบบ ตั้งแต่ แอปพลิเคชัน ไปจนถึง โปรแกรมประยุกต์ระดับองค์กรที่ใช้การจัดการและฟังก์ชันการทำงานของ Spring และการทำงามร่วมกันของ framework
Typical Full-fledged Spring Web Application
SpringSource Tool Suite (STS)
- Eclipse-powered development environment for building Spring-powered enterprise applications
- สนับสนุน Java, Spring, Groovy and Grails
- Comes with developer edition of vFabric tc Server (มาพร้อมกับเวอร์ชัน vFabric tc Server สำหรับนักพัฒนาซอฟต์แวร์)
- Pivotal tc Server คือ Tomcat ที่เหมาะสำหรับเพิ่มประสิทธิภาพให้ Spring
- สามารถใช้ Tomcat และ server อื่นๆกับ STS ได้