הגדר תצורת יישום אינטרנט של אתחול האביב
1. סקירה כללית
מגף האביב יכול לעשות הרבה דברים; במדריך זה, נעבור על כמה מאפשרויות התצורה המעניינות יותר ב- Boot.
2. מספר הנמל
ביישומים עצמאיים ראשיים, יציאת ה- HTTP הראשית ברירת מחדל היא 8080; אנו יכולים להגדיר בקלות את Boot לשימוש ביציאה אחרת:
server.port = 8083
ולגבי תצורה מבוססת YAML:
שרת: יציאה: 8083
אנו יכולים גם להתאים אישית את יציאת השרת בתכנות:
מחלקה ציבורית @Component CustomizationBean מיישם את WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactory container) {container.setPort (8083); }}
3. נתיב ההקשר
כברירת מחדל, נתיב ההקשר הוא "/". אם זה לא אידיאלי ואתה צריך לשנות את זה - למשהו כמו /שם האפליקציההנה הדרך המהירה והפשוטה לעשות זאת באמצעות מאפיינים:
server.servlet.contextPath = / springbootapp
ולתצורה מבוססת YAML:
שרת: servlet: contextPath: / springbootapp
לבסוף - ניתן לעשות את השינוי גם באופן פרוגרמטי:
מחלקה ציבורית @Component CustomizationBean מיישם את WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.setContextPath ("/ springbootapp"); }}
4. עמוד השגיאה של התווית הלבנה
Spring Boot רושם אוטומטית א BasicErrorController
שעועית אם אינך מציין יישום מותאם אישית כלשהו בתצורה.
עם זאת, ניתן להגדיר כמובן את בקר ברירת המחדל הזה:
מחלקה ציבורית MyCustomErrorController מיישם ErrorController {פרטית סטטית סופית מחרוזת PATH = "/ error"; @GetMapping (value = PATH) שגיאת מחרוזת ציבורית () {להחזיר "מקלט שגיאה"; } @Override מחרוזת ציבורית getErrorPath () {להחזיר PATH; }}
5. התאם אישית את הודעות השגיאה
אתחול מספק /שְׁגִיאָה מיפויים כברירת מחדל כדי לטפל בשגיאות בצורה הגיונית.
אם ברצונך להגדיר דפי שגיאה ספציפיים יותר, יש תמיכה טובה ב- DSL Java אחיד להתאמה אישית של טיפול בשגיאות:
מחלקה ציבורית @Component CustomizationBean מיישם את WebServerFactoryCustomizer {@Override public void customize (ConfigurableServletWebServerFactorycontainer) {container.addErrorPages (new ErrorPage (HttpStatus.BAD_REQUEST, "/ 400")); container.addErrorPages (ErrorPage חדש ("/ errorHaven")); }}
כאן טיפלנו באופן ספציפי בקשה רעה כדי להתאים את /400 נתיב וכל האחרים כדי להתאים לדרך המשותפת.
ופשוט מאוד / errorHaven יישום:
@GetMapping ("/ errorHaven") מחרוזת errorHeaven () {return "הגעת למקלט של שגיאות !!!"; }
תְפוּקָה:
הגעתם למקלט הטעויות !!!
6. כבה יישום אתחול באופן פרוגרמטי
באפשרותך לכבות תוכנת אפליקציית אתחול בעזרת אביב יישום. יש לזה סטטי יְצִיאָה() שיטה שלוקחת שני טיעונים: ApplicationContext ו ExitCodeGenerator:
@Autowired חלל ריק shutDown (ExecutorServiceExitCodeGenerator exitCodeGenerator) {SpringApplication.exit (applicationContext, exitCodeGenerator); }
באמצעות שיטת השירות הזו אנו יכולים לכבות את האפליקציה.
7. הגדר את רמות הרישום
אתה יכול בקלות כוון את רמות הרישום ביישום אתחול; החל מגרסה 1.2.0 ואילך, תוכלו להגדיר את רמת היומן בקובץ המאפיינים הראשי:
logging.level.org.springframework.web: DEBUG logging.level.org.hibernate: ERROR
ובדיוק כמו באפליקציית Spring רגילה - תוכלו להפעיל מערכות כניסה שונות לוגבק, log4j, log4j2וכו 'על ידי הוספת קובץ ה- XML או המאפיינים המותאמים להם בכיתה והגדרת הספריות ב- pom.
8. רשום סרוולט חדש
אם אתה פורס את היישום בעזרת השרת המשובץ, אתה יכול לרשום Servlets חדשים ביישום אתחול על ידי חשיפתם כשעועית מהתצורה המקובלת:
@Bean שלום HelloWorldServlet helloWorld () {להחזיר HelloWorldServlet חדש (); }
לחלופין, אתה יכול להשתמש ב- ServletRegistrationBean: מגפי האביב המתחילים בדרך כלל משתמשים Tomcat כשרת המשובץ המוגדר כברירת מחדל. אם יש לשנות את זה - תוכל לא לכלול את התלות ב- Tomcat ולכלול במקום זאת את Jetty או Undertow: הגדרת התצורה של המזח קביעת תצורה של Undertow במאמר מהיר זה, עברנו על כמה מהיותר אפשרויות תצורה מעניינות ושימושיות של Spring Boot. יש כמובן אפשרויות רבות רבות יותר להגדיר ולכוון אפליקציית Boot לצרכים שלך במסמכי הייחוס - אלה רק חלק מהשימושים יותר שמצאתי.@Bean ציבורי SpringHelloServletRegistrationBean servletRegistrationBean () {SpringHelloServletRegistrationBean שעועית = חדש SpringHelloServletRegistrationBean (חדש SpringHelloWorldServlet (), "/ springHelloWorld / *"); bean.setLoadOnStartup (1); bean.addInitParameter ("הודעה", "מסר מיוחד של SpringHelloWorldServlet"); שעועית להחזיר; }
9. הגדר את הגדרת המזח או Undertow ביישום האתחול
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty
@Bean JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory () {JettyEmbeddedServletContainerFactory jettyContainer = חדש JettyEmbeddedServletContainerFactory (); jettyContainer.setPort (9000); jettyContainer.setContextPath ("/ springbootapp"); מזח חזרה מיכל; }
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow
@Bean ציבור UndertowEmbeddedServletContainerFactory embeddedServletContainerFactory () {מפעל UndertowEmbeddedServletContainerFactory = חדש UndertowEmbeddedServletContainerFactory (); factory.addBuilderCustomizers (UndertowBuilderCustomizer חדש () {@Override Public void customize (io.undertow.Undertow.Builder builder) {builder.addHttpListener (8080, "0.0.0.0");}}); מפעל החזרה; }
10. מסקנה