Spring Framework Series: Μερος 2ο

ΕΙΣΑΓΩΓΗ

Στο 1ο μέρος αυτής της σειράς κάναμε μία γενική επισκόπηση του Spring Framework και είδαμε τα πλεονεκτήματα και τις δυνατοτητες που προσφέρει στον σύγχρονο J2EE developer (και όχι μονο). Ωραία η θεωρία, όμως  χωρίς πρακτικό κομμάτι…. δεν πάιζει. Πάμε λοιπόν να δούμε στο 2o μέρος αυτής της σειράς πώς μπορούμε να στήσουμε ένα Project σε Spring μέσα σε ελάχιστο χρόνο.

ΤΙ ΘΑ ΧΡΕΙΑΣΤΟΥΜΕ

1) Το SpringSource Tool Suite (STS)

Ένα ολοκληρωμένο περιβάλλον ανάπτυξης βασισμένο στον Ecliplse με εργαλεία για τις Spring εφαρμογές. Περιέχει επίσης έναν application server, τον tc server,  ένας “πειραγμένος” Tomcat με δυνατότητες hot deploy και Profiling.

Κατεβάστε το από εδώ .

2) Το τελευταίο JDK

Κατεβάστε το από εδώ .

ΣΤΗΝΟΝΤΑΣ ΤΟ PROJECT

1) Εγκατάσταση

– Το πρώτο βήμα είναι η εγκατάσταση του JDK.

– To STS εγκαθίστεται με ένα wizard και σε ένα από τα βήματα σας ζητάει το path του jdk.

2) Δημιουργία του Project.

– Αφότου γίνει η εγκατάσταση, ξεκινάμε τον STS. Το περιβάλλον σαφώς είναι προσφιλές σε όσους από εμάς έχουν χρησιμοποιήσει Eclipse. Την πρώτη φορά που γίνεται εκκίνηση μας ζητάει να επιλέξουμε workspace όπου και θα καταχωρούνται τα projects μας

– Το STS έρχεται με έτοιμα Spring template projects. Γενικά προτείνω τη χρησιμοποιησή τους γιατι περιέχουν etοιμο τον σκέλετο και επιταγχύνουν την ανάπτυξη του έργου σας

– Για το παράδειγμά μας θα χρησιμοποιήσουμε ένα Spring MVC Template project από το μενού New… => Spring Template Project και στη συνέχεια επιλέγουμε Spring MVC Project

– Στο wizard που εμφανίζεται βάζουμε το όνομα του project (πχ mvctest ή myspringmvc κτλ.) και το top level package (πχ. gr.zenika.web.app.mvctest). Πατήστε Finish για να ολοκληρωθεί η εγκατάσταση.

Αυτό ήτανε !!!

Αν όλα δούλεψαν σωστά, στο pane αριστερά (package explorer) θα εμφανίζεται το project mvctest.

Ας πάμε να το δοκιμάσουμε.

– Κάντε right click στο mvcproject και επιλέξτε Run As => Run On Server

– Στο παράθυρο που βγαίνει πατήστε Next (επιλέγει τον tc server) και μετά Finish στο επόμενο βήμα.

– Περιμένουμε να ξεκινήσει ο tc server και αν όλα πηγαν καλά θα δείτε στον internal browser την default σελίδα της εφαρμογής.

 

ΔΟΜΗ ΕΝΟΣ SPRING PROJECT

Στο project που δημιουργήθηκε βλέπουμε τα κομμάτια στην εικόνα παρακάτω:

Ας τα πάρουμε ένα, ένα:

WelcomeController: Είναι, όπως φαίνεται και από την ονομασία ο Controller της εφαρμογής.

config files: Αυτά τα εχεία περιέχουν τις “οδηγίες” για την εφαρμογή Spring

welcome.jsp: Είναι ο Viewer της εφαρμογής. Παρατηρήστε ότι βρίσκεται μέσα στο WEB-INF και δεν είναι directly accessible. Το Spring αναλαμβάνει την “μετάφραση” ενός URL στο να τσιμπήσει το αντίστοιχο jsp

urlrewrite.xml: Σε προηγούμενο άρθρο μου είδαμε τη δυναμική του URL Rewrite στη J2EE. To Spring Template Project μας το χρησιμοποιεί by default.

web.xml: Το τυπικό αρχείο που περιέχει όλα τις οδηγίες προς τον application container (δηλαδη τον tc server εδώ) για την σύνδεσιμότητα της εφαρμογής.

 

 

Η εφαρμογή μας είναι αρκετά απλή και δεν περιέχει Model. Αν όμως είχε θα το καλούσαμε από τον Controller.

 

ΣΥΜΠΕΡΑΣΜΑ

Σε αυτό το άρθρο διαπιστώσαμε πόσο γρήγορα μπορεί να στηθεί ένα spring project. Το STS δίνει τη δυνατότητα στον προγραμματιστή τόσο να ξεκινήσει γρήγορα την κατασκευή των ουσιωδών κομματιών της εφαρμογής όσο και να έχει τη δυνατότητα να κάνει γρήγορα και απλά integration τις άπειρες λειτουργίες του Spring.

Στο επόμενο μέρος θα μπούμε στα “εντόσθια” της Spring εφαρμογής και θα δούμε αναλυτικά τον κώδικα και τη δομή. Επίσης σε μελλοντικό άρθρο θα δούμε αναλυτικότερα τις δυνατότητες του tc server.

Passionate Archer, Runner, Linux lover and JAVA Geek! That's about everything! Alexius Dionysius Diakogiannis is a Senior Java Solutions Architect and Squad Lead at the European Investment Bank. He has over 20 years of experience in Java/JEE development, with a strong focus on enterprise architecture, security and performance optimization. He is proficient in a wide range of technologies, including Spring, Hibernate and JakartaEE. Alexius is a certified Scrum Master and is passionate about agile development. He is also an experienced trainer and speaker, and has given presentations at a number of conferences and meetups. In his current role, Alexius is responsible for leading a team of developers in the development of mission-critical applications. He is also responsible for designing and implementing the architecture for these applications, focusing on performance optimization and security.