Το Spring είναι ένα πλαίσιο Java που χρησιμοποιεί ένα κοντέινερ για τη δημιουργία και τη διαχείριση των διαφορετικών στοιχείων μιας εφαρμογής. Το κοντέινερ (συχνά αποκαλούμενο πλαίσιο εφαρμογής Spring) συνδέει τα διαφορετικά στοιχεία σε μια εφαρμογή χρησιμοποιώντας το σχέδιο σχεδίασης της ένεσης εξάρτησης (DI). Το DI σας επιτρέπει να χρησιμοποιήσετε ένα αντικείμενο σε μια εξαρτημένη κλάση, χωρίς να δημιουργήσετε μια νέα παρουσία του μέσα στην εξαρτημένη κλάση.
Έτσι, αντί να επιτρέπει σε κάθε στοιχείο να δημιουργεί νέες παρουσίες από αυτές στις οποίες βασίζεται, το κοντέινερ του Spring δημιουργεί και διατηρεί μια παρουσία για κάθε στοιχείο που φιλοξενεί. Αυτό το δοχείο στη συνέχεια εγχέει μια παρουσία ενός συστατικού σε όλα τα άλλα συστατικά που το χρειάζονται.
Εξερευνώντας τα βασικά χαρακτηριστικά του Spring
Το πλαίσιο Spring έχει περίπου 20 καλά οργανωμένες ενότητες που παίζουν αναπόσπαστο ρόλο στην ικανότητά του να δημιουργεί και να διαχειρίζεται εφαρμογές. Με βάση τα κύρια χαρακτηριστικά αυτών των λειτουργικών μονάδων, μπορείτε να τα ομαδοποιήσετε σε πέντε κατηγορίες:
- Δοχείο πυρήνα
- Πρόσβαση/Ενσωμάτωση δεδομένων
- Ιστός
- Προγραμματισμός με προσανατολισμό στις πτυχές και όργανα
- Δοκιμή
Ελατήριο Δοχείο
Το Spring χρησιμοποιεί ένα κοντέινερ για να δημιουργήσει και να διαχειριστεί διαφορετικά στοιχεία (τα οποία ονομάζει φασόλια) μιας εφαρμογής. Το κοντέινερ είναι προσβάσιμο μέσω της διεπαφής ApplicationContext του Spring, η οποία σας επιτρέπει να δημιουργείτε, να διαμορφώνετε και να συναρμολογείτε αντικείμενα (ή φασόλια). Το κοντέινερ του Spring μπορεί να εκτελέσει τη λειτουργία του χάρη στη βοήθεια των μεταδεδομένων διαμόρφωσης.
Αυτά τα μεταδεδομένα διαμόρφωσης μπορούν να έχουν πολλές διαφορετικές μορφές, αλλά η τυπική τους μορφή είναι XML. Εκτός από τα φασόλια, το δοχείο του Spring αποτελείται επίσης από έναν πυρήνα, ένα πλαίσιο και μια ενότητα έκφρασης.
Spring Data Access/Integration
Η πτυχή πρόσβασης/ενσωμάτωσης δεδομένων του πλαισίου ελατηρίου αποτελείται από διάφορες υπομονάδες: JDBC, ORM, OXM, JMS και συναλλαγή. Αυτές οι λειτουργικές μονάδες συνεργάζονται για τη διαχείριση τυχόν δεδομένων που χρησιμοποιεί η εφαρμογή σας.
Ανοιξιάτικος Ιστός
Η δυνατότητα web της εφαρμογής Spring παρέχει ενσωμάτωση προσανατολισμένη στον ιστό για την εφαρμογή σας. Εκτός από την ολοκλήρωση προσανατολισμένη στον ιστό, το Spring παρέχει μια λειτουργική μονάδα web servlet. Η ενότητα web servlet είναι υπεύθυνη για το Spring υλοποίηση μοντέλου-προβολή-ελεγκτή (MVC)..
Προγραμματισμός με προσανατολισμό στην άνοιξη (AOP)
Το πλαίσιο AOP του Spring είναι ένα άλλο από τα βασικά του στοιχεία. Αν και το πλαίσιο AOP δεν είναι κρίσιμο για τη λειτουργία κοντέινερ του Spring, συμπληρώνει το κοντέινερ αποτελώντας μια ικανή λύση ενδιάμεσου λογισμικού. Ένα από τα βασικά χαρακτηριστικά του πλαισίου AOP είναι ότι παρέχει δηλωτικές εταιρικές υπηρεσίες για την εφαρμογή σας, δηλαδή διαχείριση συναλλαγών δήλωσης.
Η δηλωτική διαχείριση συναλλαγών είναι μια επιθυμητή προσέγγιση για την ανάπτυξη λογισμικού, επειδή έχει ελάχιστο αντίκτυπο στον κώδικα της εφαρμογής.
Εαρινή δοκιμή
Η άνοιξη δίνει σημαντική σημασία στη δοκιμή εφαρμογών. Η δοκιμαστική μονάδα του υποστηρίζει δοκιμές ενοποίησης και δοκιμές μονάδας χρησιμοποιώντας JUnit ή TestNG.
Δημιουργία Εφαρμογής Άνοιξης
Υπάρχουν διάφοροι τρόποι για να δημιουργήσετε το boilerplate για μια νέα εφαρμογή Spring. Οι διάφορες προσεγγίσεις περιλαμβάνουν:
- Από την διαδικτυακή εφαρμογή (ή Spring Initializr) στον επίσημο ιστότοπο της Spring.
- Μη αυτόματη δημιουργία μιας δομής καταλόγου έργου και προδιαγραφών κατασκευής.
- Με την Spring Tool Suite.
- Από τη γραμμή εντολών με τη διεπαφή γραμμής εντολών Spring Boot.
- Με το Eclipse IDE.
- Με το IntelliJ IDEA IDE.
Η πιο δημοφιλής προσέγγιση είναι το Spring Initializr:
Όπως μπορείτε να δείτε από την παραπάνω εικόνα, θα πρέπει να πάρετε πολλές αποφάσεις. Το πρώτο είναι ο τύπος του έργου που θέλετε να αρχικοποιήσετε. Το Spring παρέχει τρεις επιλογές: Gradle για Groovy, Gradle για Kotlin ή Maven. Αυτό το δείγμα εφαρμογής θα χρησιμοποιεί ένα έργο Maven.
Οι άλλες επιλογές που πρέπει να επιλέξετε είναι η γλώσσα (Java), η έκδοση του Spring Boot που θέλετε να χρησιμοποιήσετε και τα μεταδεδομένα του έργου. Το Spring έχει ήδη κάποια εικονικά δεδομένα στα πέντε πεδία του που θα σας βοηθήσουν να δημιουργήσετε ένα δείγμα εφαρμογής. Ωστόσο, θα χρειαστεί να ενημερώσετε αυτά τα πεδία με δεδομένα για συγκεκριμένα έργα, καθώς αυτά τα μεταδεδομένα θα περιγράφουν την εφαρμογή Spring, συμπεριλαμβανομένων των Spring beans και των μεθόδων τους.
Στη συνέχεια, θα πρέπει να επιλέξετε τη συσκευασία στην οποία θέλετε τα αρχεία σας (βάζο ή πόλεμο). Στη συνέχεια, μπορείτε να επιλέξετε την έκδοση Java που έχετε στη συσκευή σας. Η τελική απόφαση που θα πρέπει να πάρετε είναι ο τύπος των εξαρτήσεων που θέλετε για την αίτησή σας.
Το Spring παρέχει πολλές εξαρτήσεις που μπορείτε να χρησιμοποιήσετε για να προσθέσετε ιδιότητες στην εφαρμογή σας. Για να προσθέσετε μια νέα εξάρτηση στην εφαρμογή σας, απλώς κάντε κλικ στο κουμπί προσθήκη εξαρτήσεων στα δεξιά του Spring Initializr. Αυτή η ενέργεια θα δημιουργήσει την ακόλουθη επικάλυψη στην οθόνη σας:
Για αυτό το δείγμα εφαρμογής, η μόνη εξάρτηση που θα χρειαστείτε είναι το Spring Web. Αυτή η εξάρτηση σάς επιτρέπει να δημιουργείτε εφαρμογές Ιστού χρησιμοποιώντας την αρχιτεκτονική MVC. Αφού επιλέξετε όλες τις εξαρτήσεις που θέλετε να χρησιμοποιήσετε στην εφαρμογή σας, προχωρήστε στη δημιουργία κλικ. Αυτό θα κατεβάσει το boilerplate του έργου για εσάς.
Τώρα έχετε ένα έργο Spring Boot (που είναι μια από τις βιβλιοθήκες της Spring). Το τελευταίο βήμα είναι να εισαγάγετε το έργο στο IDE που προτιμάτε. Το ανοιξιάτικο έργο σας θα έχει την ακόλουθη δομή έργου:
Αυτή είναι μια κανονική δομή έργου Maven και υπάρχουν πολλά σημαντικά αρχεία με τα οποία πρέπει να εξοικειωθείτε.
- Pom.xml: Περιέχει τα δεδομένα διαμόρφωσης της εφαρμογής Spring.
- OnlineShopaholicsApplication.java: Αυτή είναι η κύρια κλάση Spring Boot, η οποία εκτελεί την εφαρμογή.
- OnlineShopaholicsApplicationTest.java: Αυτό είναι ένα Δοκιμή JUnit κλάση που διασφαλίζει ότι το περιβάλλον εφαρμογής Spring (ή το κοντέινερ) φορτώνεται σωστά.
Εκτέλεση μιας εφαρμογής Spring
Η κλάση εκκίνησης του Spring, που σε αυτήν την περίπτωση είναι η κλάση OnlineShopaholicsApplication, έχει τον ακόλουθο αρχικό κωδικό:
πακέτο com.onlineshopaholics;
εισαγωγήorg.ελατήριο πλαίσιο.μπότα.Εφαρμογή Άνοιξης;
εισαγωγήorg.ελατήριο πλαίσιο.μπότα.αυτόματη διαμόρφωση.SpringBootApplication;
@SpringBootApplication
δημόσιοτάξηΕφαρμογή OnlineShopaholics{
δημόσιοστατικόςκενόςκύριος(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.τάξη, args);
}
}
Μία από τις πιο σημαντικές πτυχές του παραπάνω κώδικα είναι το @SpringBootApplication σχολιασμός, ο οποίος είναι ένας σύνθετος σχολιασμός που επιτρέπει στην εφαρμογή σας να έχει πρόσβαση στις δυνατότητες τριών άλλων σχολιασμών:
- @EnableAutoconfiguration: Αυτός ο σχολιασμός επιτρέπει την αυτόματη διαμόρφωση Spring Boot. Αυτό σημαίνει ότι λέει στο Spring boot να διαμορφώσει οποιοδήποτε στοιχείο που πιστεύει ότι θα χρειαστεί η εφαρμογή σας για να λειτουργήσει.
- @ComponentScan: Αυτός ο σχολιασμός σάς επιτρέπει να ενεργοποιήσετε τη σάρωση στοιχείων. Αυτή η δυνατότητα είναι σημαντική, επιτρέπει στο Spring να ανακαλύπτει και να καταχωρεί αυτόματα άλλα σχολιασμένα στοιχεία για χρήση από το περιβάλλον εφαρμογής Spring (ή το κοντέινερ).
- @SpringBootConfiguration: Αυτή είναι μια εξειδικευμένη μορφή του σχολιασμού @Configureation, η οποία σας επιτρέπει να καταχωρείτε φασόλια (ή αντικείμενα) στο πλαίσιο της εφαρμογής Spring.
Η άλλη σημαντική πτυχή του παραπάνω κώδικα είναι το κύριος() μέθοδο, εκτελεί την αίτησή σας. Όταν η εφαρμογή εκτελείται τώρα, απλά ξεκινά τον διακομιστή. Επομένως, εάν θέλετε να προσθέσετε περισσότερες λειτουργίες στην εφαρμογή, θα χρειαστεί να ενημερώσετε τον κώδικα:
πακέτο com.onlineshopaholics;
εισαγωγήorg.ελατήριο πλαίσιο.μπότα.Εφαρμογή Άνοιξης;
εισαγωγήorg.ελατήριο πλαίσιο.μπότα.αυτόματη διαμόρφωση.SpringBootApplication;
εισαγωγήorg.ελατήριο πλαίσιο.ιστός.δένω.σχόλιο.GetMapping;
εισαγωγήorg.ελατήριο πλαίσιο.ιστός.δένω.σχόλιο.RequestParam;
εισαγωγήorg.ελατήριο πλαίσιο.ιστός.δένω.σχόλιο.RestController;@SpringBootApplication
@RestController
δημόσιοτάξηΕφαρμογή OnlineShopaholics{
δημόσιοστατικόςκενόςκύριος(String[] args){
SpringApplication.run (OnlineShopaholicsApplication.τάξη, args);
}
@GetMapping("/πελάτης")
δημόσιο Σειρά Welcome(@RequestParam (τιμή = "όνομα", defaultValue = "Πελάτης") Σειρά όνομα) {
ΕΠΙΣΤΡΟΦΗΣειρά.μορφή("Καλώς ορίσατε %s!", όνομα);
}
}
Η εφαρμογή Spring Boot έχει τώρα τρεις νέους σχολιασμούς:
- @RestController: Αυτός ο σχολιασμός επισημαίνει την κλάση ως ελεγκτή, επομένως κάθε μέθοδος στην παραπάνω κλάση (εκτός από την main()) θα επιστρέψει ένα αντικείμενο τομέα αντί για μια προβολή.
- @GetMapping: Αυτός ο σχολιασμός αντιστοιχίζει τα αιτήματα HTTP GET σε συγκεκριμένες μεθόδους κεφαλίδας. Έτσι, κάθε φορά που δημιουργείτε ένα αίτημα για "/customer" στο πρόγραμμα περιήγησης, η μέθοδος Welcome() θα χειρίζεται το αίτημα επιστρέφοντας μια τιμή συμβολοσειράς.
- @RequestParam: Αυτός ο σχολιασμός υποδεικνύει ότι μια παράμετρος μεθόδου πρέπει να δεσμεύεται σε μια παράμετρο αιτήματος Ιστού.
Με τον ενημερωμένο κωδικό σας Άνοιξη Εφαρμογή OnlineShopaholics τώρα έχει μια σελίδα πελάτη που μπορείτε να δείτε στο πρόγραμμα περιήγησής σας. Η εκτέλεση της εφαρμογής θα ξεκινήσει τον διακομιστή και θα παράγει έξοδο στην κονσόλα.
Υπάρχουν πολλές σημαντικές πληροφορίες στην έξοδο. Σας ενημερώνει ότι ο διακομιστής εκτελείται, σας λέει πόσο χρόνο χρειάστηκε η διαδικασία προετοιμασίας και σας λέει σε ποια θύρα εκτελείται η εφαρμογή (8080, από προεπιλογή). Επομένως, εάν πλοηγηθείτε σε http://localhost: 8080/πελάτη θα δείτε την ακόλουθη έξοδο στο πρόγραμμα περιήγησής σας:
Τώρα μπορείτε να σχεδιάσετε την προβολή της εφαρμογής σας
Ένα άλλο σημαντικό αρχείο στη δομή του έργου που μπορεί να παρατηρήσετε είναι το πρότυπα ντοσιέ. Ιδανικά, το Εφαρμογή OnlineShopaholics Η κλάση θα πρέπει να χρησιμεύει ως ελεγκτής, ο οποίος χειρίζεται αιτήματα για διαφορετικές προβολές. Επομένως, σε μια πλήρη εφαρμογή, η κλάση ελεγκτή δεν πρέπει να περιέχει το κείμενο που θα εμφανίζεται στην προβολή του αιτήματός της.
Αντίθετα, θα χρειαστεί να δημιουργήσετε αρχεία προτύπων χρησιμοποιώντας HTML και να τα τοποθετήσετε στον φάκελο προτύπων της εφαρμογής Spring.