כיצד לשנות את יציאת ברירת המחדל באביב אתחול

1. הקדמה

Spring Boot מספק ברירות מחדל הגיוניות עבור מאפייני תצורה רבים. ובכל זאת, לפעמים אנו צריכים להתאים אותם לערכים הספציפיים למקרה שלנו.

מקרה נפוץ הוא שינוי יציאת ברירת המחדל עבור השרת המשובץ.

במדריך מהיר זה נסקור מספר דרכים להשיג זאת.

2. שימוש בקבצי נכסים

הדרך המהירה והקלה ביותר להתאים אישית את Spring Boot היא על ידי עקיפת הערכים של מאפייני ברירת המחדל.

עבור יציאת השרת, המאפיין שאנו רוצים לשנות הוא server.port.

כברירת מחדל, השרת המשובץ מתחיל ביציאה 8080. בואו נראה כיצד אנו יכולים לספק ערך אחר ב- application.properties קוֹבֶץ:

server.port = 8081

כעת השרת יתחיל ביציאה 8081.

באופן דומה, אנו יכולים לעשות את אותו הדבר אם אנו משתמשים ב- application.yml קוֹבֶץ:

שרת: יציאה: 8081

שני הקבצים נטענים אוטומטית על ידי Spring Boot אם הם ממוקמים ב- src / main / resources ספריה של יישום Maven.

2.1. יציאות ספציפיות לסביבה

אם יש לנו יישום שנפרס בסביבות שונות, ייתכן שנרצה שהוא יפעל ביציאות שונות בכל מערכת.

אנו יכולים להשיג זאת בקלות על ידי שילוב של גישת קבצי המאפיינים עם פרופילי אביב. באופן ספציפי, אנו יכולים ליצור קובץ מאפיין לכל סביבה.

לדוגמא, יהיה לנו יישומים-dev.properties קובץ עם התוכן:

server.port = 8081

לאחר מכן, נוסיף עוד יישום- qa. נכסים קובץ עם יציאה אחרת:

server.port = 8082

תצורת קבצי המאפיינים אמורה להספיק ברוב המקרים.

עם זאת, ישנן אפשרויות אחרות למטרה זו, אז בואו נבדוק גם אותן.

3. תצורה פרוגרמטית

אנו יכולים להגדיר את היציאה באופן פרוגרמטי על ידי הגדרת המאפיין הספציפי בעת הפעלת היישום או על ידי התאמה אישית של תצורת השרת המשובץ.

ראשית, בואו נראה כיצד להגדיר את הנכס העיקרי @ SpringBootApplication מעמד:

@SpringBootApplication מחלקה ציבורית CustomApplication {public static void main (String [] args) {SpringApplication app = new SpringApplication (CustomApplication.class); app.setDefaultProperties (אוספים. singletonMap ("server.port", "8083")); app.run (טוען); }}

לאחר מכן, כדי להתאים אישית את תצורת השרת, עלינו ליישם את ה- WebServerFactoryCustomizer מִמְשָׁק:

@Component מחלקה ציבורית ServerPortCustomizer מיישמת את WebServerFactoryCustomizer {@Override public void customize (ConfigurableWebServerFactory factory) {factory.setPort (8086); }}

שים לב שהדבר חל על גרסת Spring Boot 2.x.

עבור Spring Boot 1.x, אנו יכולים ליישם באופן דומה את EmbeddedServletContainerCustomizer מִמְשָׁק.

4. שימוש בארגומנטים של שורת פקודה

כאשר אנו מארזים ומריצים את היישום שלנו כצנצנת, אנו יכולים להגדיר את ה- server.port ויכוח עם ג'אווה פקודה:

java -jar spring-5.jar - server.port = 8083

או באמצעות התחביר המקביל:

java -jar -Dserver.port = 8083 spring-5.jar

5. סדר הערכה

כהערה אחרונה, בואו נסתכל על סדר הערכת הגישות הללו על ידי Spring Boot.

בעיקרון, עדיפות התצורה היא:

  • תצורת שרת מוטבע
  • טיעוני שורת פקודה
  • קבצי נכסים
  • רָאשִׁי @ SpringBootApplication תְצוּרָה

6. מסקנה

במדריך מהיר זה, ראינו כיצד להגדיר את יציאת השרת ביישום Spring Boot.

קוד המקור של הדוגמאות זמין ב- GitHub.