Στο δεύτερο μέρος της σειράς μας, θα δούμε σε βάθος το Spring Boot.
Τη φιλοσοφία του Spring Boot και τα πλεονεκτήματα που έχει να μας προσφέρει.
Η ανάπτυξη εφαρμογών με τον παραδοσιακό τρόπο απαιτεί να γραφτεί μεγάλος όγκος κώδικα, και συχνά χρησιμοποιείται κώδικας από τρίτους. Αυτό κάνει την εφαρμογή μας να είναι επιρρεπείς σε σφάλματα.
Το Spring Boot είναι ένα framework που βασίζεται στο Spring Framework. Έχει σχεδιαστεί ώστε να μειώνει το χρόνο που απαιτείτε για την ανάπτυξη εφαρμογών. Μέσω των διάφορων εργαλείων που χρησιμοποιούνται, οι εφαρμογές που αναπτύσσονται είναι έτοιμες για να εγκατασταθούν χωρίς περισσότερα πρόσθετα.
Τα frameworks είναι ένα σύνολο από εργαλεία και βιβλιοθήκες που παρέχουν δομή στην ανάπτυξη εφαρμογών και διευκολύνουν τους προγραμματιστές να επικεντρωθούν στη λογική της εφαρμογής.
Υπάρχουν τρείς βασικές αρχές:
1η Αυτόματη διαμόρφωση
Ενσωματωμένες λειτουργίες που ρυθμίζουν την εφαρμογή μας με βάση τις βιβλιοθήκες που υπάρχουν στον class path μας.
Αυτό σημαίνει λιγότερος κώδικας και λιγότερο χρόνος για ρυθμίσεις
2η Συμβάσεις έναντι διαμόρφωσης
Δεν χρειάζονται εκτενή αρχεία ρυθμίσεων αλλά βασίζεται σε κοινές συμβάσεις, που έχουν ως στόχο την απλοποίηση και τη μείωση των σφαλμάτων.
Με την προσέγγιση του convention over configuration, υπάρχουν προκαθορισμένες ρυθμίσεις όπως η σύνδεση με τη βάση δεδομένων και την ασφάλεια.
Συμβάσεις ονομασία μέσα στις κλάσεις μας, εντοπίζοντας έτσι τις εξαρτίσεις.
Ως παράδειγμα είδαμε τη σύνδεση με τη βάση δεδομένων, που δεν χρειάζεται λεπτομερώς ρύθμιση απλά ορίζουμε ως εξάρτηση τη βιβλιοθήκη για τη βάση που θα χρησιμοποιήσουμε, τη διεύθυνση και τους κωδικούς πρόσβασης, και το Spring Boot αναλαμβάνει τα υπόλοιπα.
3η Ταχύτερη ανάπτυξη μέσω μείωσης κώδικα
Μειωμένος κώδικας boilerplate που με απλά λόγια είναι ο κώδικας που χρειάζεται η εφαρμογή για να λειτουργήσει ή να ρυθμιστεί. Σε ορισμένες περιπτώσεις αυτός ο κώδικας απλά επαναλαμβάνεται.
Βασικές έννοιες και τα annotations.
Μέσω των Spring Starter Project που είναι προ ρυθμισμένα πακέτα με τις εξαρτήσεις τους.
Με τη χρήση του οδηγού αναφέρουμε στο βίντεο τι κάνει κάθε επιλογή.
Αναφέρουμε επίσης και τα annotations:
Τα οποία είναι οδηγίες προς το Spring Boot τι αναμένουμε ακριβώς από μια κλάση ή μέθοδο στο κώδικα μας.
Έτσι αποφεύγουμε τον περίπλοκο κώδικα, μπορούμε να ορίσουμε τα annotations ως συντομογραφίες.
Ως παράδειγμα είδαμε το @Controller που είναι υπεύθυνο για τη διεκπεραίωση web requests.
Το Auto Configuration.
Είναι μια βασική λειτουργία, ένας αυτοματοποιημένος μηχανισμός που ρυθμίζει διάφορες πτυχές της εφαρμογής. Εντοπίζει τις εξαρτήσεις και τα annotations, σαρώνοντας το class path.
Διαχείριση εξαρτήσεων με το Maven.
Το maven είναι ένα build automation εργαλείο, που εντοπίζει και κατεβάζει τις απαραίτητες εξαρτήσεις. Χρησιμοποιεί το POM αρχείο, (Project Object Model) που περιέχει όλα τα metadata του έργου μας.
Στο βίντεο μας βλέπουμε με λεπτομέρεια το maven.
Αναλύσαμε επίσης και το effective POM, που είναι μια συγχώνευση του απλού pom με το super pom, που είναι ένας ορισμός από προκαθορισμένες δηλώσεις που μοιράζονται όλα τα έργα μας.
Παράδειγμα ενός απλού website
Για τη δημιουργία ενός απλού website, βρήκαμε μια έτοιμη σελίδα από το διαδίκτυο και με αλλαγές στην εφαρμογή μας καταφέραμε να ζητήσουμε το email από τον χρήστη και να το δείξουμε στην οθόνη.
Εκτέλεση και συσκευασία εφαρμογής
Στο βίντεο εξηγήσαμε τις 4 διαφορετικές φάσεις που στην ουσία είναι διαδικασίες που εκτελούνται αυτόματα.
Το Clean, που καθαρίζει οπουδήποτε κτισμένο κώδικα,
Το Compile, που χτίζει όλο τον java κώδικα μας σε byte code.
Το Process Resources που επεξεργάζεται κώδικα όπως html αρχεία, φωτογραφίες κ.α.
Το Package, που ενσωματώνει τον byte code κώδικα τα resources και όλα τα dependencies σε ένα αρχείο για εκτέλεση σε web server.
Αναλύσαμε σε βάθος το συμβαίνει στο παρασκήνιο όταν πατάμε το κουμπί εκκίνησης.
Προηγμένα θέματα
σε αυτό το μέρος, μέσω παραδείγματος είδαμε τη χρήση του thymeleaf και το πως μπορούμε να μεταφέρουμε πληροφορίες από τον java κώδικα μας πίσω στο χρήστη.
Επίσης είδαμε τη διαδικασία για τα fragments που μας βοηθάνε να εντοπίσουμε τα κοινά σημεία στα html θέματα μας και να αποφύγουμε την επανάληψη κώδικα.
Συμπεράσματα
Το Spring Boot, ένα πλαίσιο ανάπτυξης εφαρμογών Java, έχει σχεδιαστεί με στόχο να απλοποιήσει και να επιταχύνει σημαντικά τη διαδικασία δημιουργίας σύγχρονων εφαρμογών. Με βασικές αρχές όπως η αυτόματη διαμόρφωση και η προώθηση των συμβάσεων έναντι της εκτεταμένης διαμόρφωσης, το Spring Boot επιτρέπει στους προγραμματιστές να επικεντρωθούν στην επιχειρηματική λογική των εφαρμογών τους, μειώνοντας σημαντικά τον απαραίτητο κώδικα boilerplate. Παρέχοντας έτοιμες υποδομές, βιβλιοθήκες και εργαλεία, όπως τα Spring Starter Projects, τα annotations και το Maven, το Spring Boot προσφέρει μια ολοκληρωμένη λύση για την ανάπτυξη εφαρμογών. Επιπλέον, η δυνατότητα αυτόματης διαμόρφωσης, που ρυθμίζει αυτόματα το περιβάλλον Spring, εξαλείφει την ανάγκη για εκτεταμένη χειροκίνητη διαμόρφωση, εξοικονομώντας χρόνο και μειώνοντας τα περιθώρια για λάθη. Με τη χρήση εξαρτήσεων όπως το Thymeleaf για τη δημιουργία δυναμικών ιστοσελίδων και drivers για τη σύνδεση με βάσεις δεδομένων, το Spring Bootαπλοποιεί περαιτέρω τη διαδικασία ανάπτυξης, παρέχοντας στους προγραμματιστές τα απαραίτητα εργαλεία για την υλοποίηση των εφαρμογών τους. Συνολικά, το Spring Boot αποτελεί μια ισχυρή και ευέλικτη επιλογή για την ανάπτυξη εφαρμογών Java, επιτρέποντας στους προγραμματιστές να δημιουργούν πιο γρήγορα, πιο αξιόπιστες και πιο εύχρηστες εφαρμογές.

