Ερωτήσεις Συνέντευξης Spring Boot

Από Aaron Cao · Ενημερώθηκε

Ερωτήσεις Συνέντευξης Spring Boot
Περιμένετε ερωτήσεις για autoconfiguration και starters, dependency injection και bean scopes, profiles και εξωτερική διαμόρφωση, Spring Data JPA, REST controllers και exception handling, testing slices, και Actuator. Οι συνεντεύξεις senior προσθέτουν όρια συναλλαγών, caching και πώς συμπεριφέρεται μια υπηρεσία μετά από επανεκκίνηση.

Περιμένετε ερωτήσεις για autoconfiguration και starters, dependency injection και bean scopes, profiles και εξωτερική διαμόρφωση, Spring Data JPA, REST controllers και exception handling, testing slices, και Actuator. Οι συνεντεύξεις senior προσθέτουν όρια συναλλαγών, caching και πώς συμπεριφέρεται μια υπηρεσία μετά από επανεκκίνηση.

Τι ρωτούν οι συνεντευκτές για το autoconfiguration και τα starters;

Πιθανότατα χρησιμοποιείτε το Spring Boot καθημερινά χωρίς να διαβάζετε το startup log του, και οι συνεντευκτές το ξέρουν, γι' αυτό ξεκινούν από εδώ. Αυτή η ενότητα καλύπτει ερωτήσεις που ελέγχουν αν καταλαβαίνετε το framework ή μόνο τις προεπιλογές του.

  • Τι ακριβώς συνδυάζει το @SpringBootApplication, και τι θα χαλούσε αν αφαιρούσατε ένα μέρος;
  • Πώς αποφασίζει το autoconfiguration τι να διαμορφώσει, και τι ρόλο παίζουν τα conditional annotations;
  • Τι είναι ένα starter, και τι περιέχει πέρα από dependencies;
  • Πώς κάνετε override ή απενεργοποιείτε ένα συγκεκριμένο autoconfiguration;
  • Από πού προέρχεται ένας embedded server, και πώς θα τον αντικαθιστούσατε;

Μια καλή απάντηση συνδέει τον μηχανισμό με κάτι που κάνατε πραγματικά: ένα bean που χρειάστηκε να κάνετε exclude, ένα starter που αντικαταστήσατε, ή ένα startup σφάλμα που εντοπίσατε μέσω του condition evaluation report.

Ποιες βασικές ερωτήσεις για container και δεδομένα προκύπτουν;

  • Dependency injection. Constructor έναντι field injection, γιατί προτιμάται το constructor injection, και πώς επιλύετε δύο υποψήφια beans του ίδιου τύπου.
  • Κύκλος ζωής και scopes bean. Γιατί το singleton είναι η προεπιλογή, πότε είναι σωστό το request ή prototype scope, και τι κάνει επικίνδυνο τον διαμοιρασμό ενός singleton bean.
  • Διαμόρφωση. Προτεραιότητα property, profiles ανά περιβάλλον, και @ConfigurationProperties έναντι διάσπαρτου value injection.
  • Spring Data JPA. Παράγωγες μέθοδοι query, το πρόβλημα N συν 1, lazy έναντι eager fetching, και πότε να καταφύγετε σε native query.
  • Συναλλαγές. Τι πραγματικά υποκλέπτει το proxy του @Transactional, γιατί μια self-invocation παρακάμπτει σιωπηλά τη συναλλαγή, και πώς λειτουργούν οι κανόνες rollback με checked exceptions.

Η ερώτηση για το proxy συναλλαγών είναι το πιο συνηθισμένο σημείο όπου μια σίγουρη απάντηση καταρρέει, οπότε να είστε έτοιμοι να εξηγήσετε το όριο του proxy αντί απλώς να αναφέρετε το annotation.

Πώς μιλάτε για σχεδιασμό REST, testing και λειτουργίες;

Πέρα από το container, οι συνεντευκτές θέλουν να δουν τα κομμάτια που εμφανίζονται στην παραγωγή. Στο web layer: επιλογές status code, validation, και κεντρικοποιημένη διαχείριση σφαλμάτων με @ControllerAdvice αντί για try-catch σε κάθε controller. Στο testing: η διαφορά μεταξύ ενός πλήρους @SpringBootTest και ενός slice όπως ένα web-layer test, και γιατί η εκκίνηση ολόκληρου του context για ένα μόνο controller test είναι μια αργή συνήθεια. Στις λειτουργίες: τι εκθέτει το Actuator, ποια endpoints δεν πρέπει να είναι δημόσια, και πώς τα health checks τροφοδοτούν ένα deployment.

Φανταστείτε μια backend μηχανικό που κάνει συνέντευξη για ρόλο mid-level σε εταιρεία logistics. Τη ρωτούν γιατί μια προγραμματισμένη job έγραφε μερικές φορές ελλιπή δεδομένα. Αντί να μαντέψει, εξηγεί το όριο της συναλλαγής, παρατηρεί ότι η job καλούσε μια transactional μέθοδο πάνω στον εαυτό της, και εξηγεί τη συμπεριφορά του proxy που το παρέκαμψε. Ο συνεντευκτής προχώρησε κατευθείαν σε συζήτηση για προσφορά, επειδή η απάντηση έδειχνε συνήθεια debugging αντί για απομνημονευμένο ορισμό.

Τα σετ ερωτήσεων για άλλες γλώσσες και frameworks συγκεντρώνονται στο question banks.

Πώς πρέπει να εξασκείστε, και πού ταιριάζει ένας live βοηθός;

Διαβάστε μία φορά το startup log της δικής σας υπηρεσίας και μπορέστε να το αφηγηθείτε. Έπειτα εξασκηθείτε δυνατά, γιατί το χάσμα μεταξύ του να γνωρίζετε μια έννοια και του να την εξηγείτε σε σαράντα δευτερόλεπτα είναι αυτό που κρίνει αυτές τις συνεντεύξεις. Ένας AI συνεντευκτής στη σελίδα /mock-interview μπορεί να κάνει τις follow-up ερωτήσεις που δεν θα κάνατε στον εαυτό σας.

Κατά τη διάρκεια μιας προφορικής video συνέντευξης, το SubcueAI μεταγράφει την ερώτηση του συνεντευκτή και εμφανίζει μια προτεινόμενη δομή στην πλευρά σας, στο desktop overlay σε macOS και Windows ή στο πλαϊνό panel της επέκτασης browser Chromium. Κανένα meeting bot δεν συμμετέχει στην κλήση, και τίποτα δεν εγχέεται στη σελίδα της συνάντησης. Το ειλικρινές όριο είναι ο γύρος coding: αν μεταφερθεί σε πλατφόρμα με screen monitoring ή proctoring, η live βοήθεια είναι εκτός εμβέλειας, και αν μοιραστείτε την οθόνη σας, όλα όσα υπάρχουν πάνω της είναι ορατά.

Συχνές ερωτήσεις

Ποια είναι η διαφορά μεταξύ Spring και Spring Boot;

Το Spring είναι το υποκείμενο framework. Το Spring Boot προσθέτει opinionated autoconfiguration, starter dependencies, και έναν embedded server ώστε μια υπηρεσία να τρέχει χωρίς εξωτερικά αρχεία διαμόρφωσης.

Γιατί προτιμάται το constructor injection;

Κάνει τα dependencies ρητά και υποχρεωτικά, κρατά τα fields final, και σας επιτρέπει να χτίσετε το αντικείμενο σε ένα test χωρίς container. Το field injection κρύβει τα dependencies που λείπουν μέχρι το runtime.

Τι είναι το πρόβλημα N συν 1;

Ένα query φορτώνει μια λίστα, και μετά κάθε στοιχείο ενεργοποιεί ένα ακόμη query για τη σχέση του. Διορθώστε το με fetch join, entity graph, ή batch fetching αντί να κάνετε eager loading τα πάντα.

Ποια endpoints Actuator είναι επικίνδυνο να εκθέσετε;

Οτιδήποτε αποκαλύπτει διαμόρφωση, environment, ή heap state. Εκθέστε τα health και metrics μέσω του δικού σας μονοπατιού monitoring και κρατήστε τα υπόλοιπα πίσω από authentication ή εντελώς κλειστά.

Πόσο βαθιά φτάνουν οι ερωτήσεις Spring Boot για ρόλους senior;

Οι συνεντεύξεις senior περνούν από τα annotations στη συμπεριφορά: όρια proxy, transaction propagation, ορθότητα caching, απόδοση εκκίνησης, και πώς συμπεριφέρεται η υπηρεσία κατά τη διάρκεια ενός rolling restart.

Σχετικές ερωτήσεις

← Περισσότερα για Ερωτήσεις συνέντευξης ανά ρόλο & θέμα