springboot configurar la bandera puesta en marcha y configuración personalizada Análisis Principio

prefacio

Observamos springboot al inicio del proyecto, la consola se imprimirá que viene con la pancarta y para algunos estudiantes que comparan la demostración de aire, demasiado monótona demasiado ordinaria demasiado general, por lo tanto, es el rendimiento en tiempo real de la tecnología

 

banner personalizado

Muy sencillo, basta con añadir un archivo banner.txt personalizado en el directorio de recursos lata

 

contenido banner.txt

$ {} AnsiColor.BRIGHT_RED
 //////////////////////////////////////////// //////////////////////// 
//                           _ooOoo_                                // 
//                          o8888888o                               // 
//                          88" 88."                               // 
//                          (| ^ _ ^ |)                               // 
//                          O \ = E / S                               // 
//                       ____ / `--- '\ ____                            // 
//                     '. \\ | | //  `.                         // 
//                    / \\ ||| : ||| //   \                         // 
//                   / _ ||||| -: - ||||| - \                        // 
//                   | | \\\ -   // / | |                       // 
//                   | \ _ | '' \ --- / '' | |                       // 
//                   \ .- \ __ `-` ___ / -. /                        // 
//                 ___ '. .' /--.-- \ '. . ___                      // 
//               "" '< `.___ \ _ <|.> _ / ___'. > " "".                  
//             | |: `- \`; '\ _ /`;.`/ -` :. | |                  // 
//             . \ \' - \ _ __ \ / __ _ /.- `/ /                  // 
/ /       ======== `` -.____ -.___ \ _____ / ___.- ____.- ` '========          // 
//                            ` = --- ='                               // 
/ /       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^         // 
//         Namo Namo Buda Amitabha Amitabha              // 
////////////////////////////////// //////////////////////////////////

 

================= línea divisoria =============================== =

Como un mono programa de demostración de aire, por supuesto, no podemos parar en configurará un banner personalizado, vamos a ir al código fuente de la siguiente Chou Chou qué tal configuración puede lograr un banner personalizado, para ir de ~

En primer lugar, entrar en la aplicación de la entrada principal de la función inicia el método de ejecución, vamos a echar un vistazo ahora ir paso a paso

SpringApplication clase 

pública  estática ConfigurableApplicationContext RUN (<?> Clase PrimarySource, cuerdas ... args) {
         retorno RUN ( nueva nueva <?> Clase [] {} PrimarySource, args); 
    } // nuevos nueva SpringApplication (primarySources) no tenemos este método ver, este es un montaje automático springboot lógica (SPI), y estamos justo detrás de RUN (args )
 

pública estática ConfigurableApplicationContext RUN (Clase <?> [] primarySources, String [] args) { volver nueva nueva SpringApplication (primarySources). RUN (args) ; } públicas ConfigurableApplicationContext RUN (String ... args) { Cronómetro Cronómetro = nuevo StopWatch (); stopWatch.start (); Contexto ConfigurableApplicationContext = nulo ; Colección <SpringBootExceptionReporter> exceptionReporters = nuevo ArrayList <> (); configureHeadlessProperty (); SpringApplicationRunListeners oyentes = getRunListeners (args); listeners.starting (); tratar { ApplicationArguments applicationArguments = nuevos DefaultApplicationArguments (args); ConfigurableEnvironment ambiente = prepareEnvironment (oyentes, applicationArguments); configureIgnoreBeanInfo (Medio Ambiente);
       // encontramos que esto es una bandera inicio del proceso paso lógico, el punto fue a ver la bandera printedBanner
= printBanner (Medio Ambiente); contexto = createApplicationContext (); exceptionReporters . = getSpringFactoriesInstances (SpringBootExceptionReporter clase , nueva nueva clase [] {ConfigurableApplicationContext. clase }, contexto); prepareContext (contexto, Medio ambiente, los oyentes, applicationArguments, printedBanner); refreshContext (contexto); AfterRefresh (contexto, applicationArguments); stopWatch.stop (); si ( este listeners.running (contexto);.logStartupInfo) { nueva StartupInfoLogger ( este .mainApplicationClass) .logStarted (getApplicationLog (), cronómetro); } Listeners.started (contexto); callRunners (contexto, applicationArguments); } Captura (ex) {Throwable handleRunFailure (contexto, ex, exceptionReporters, oyentes); arrojar nueva IllegalStateException (ex); } Tratar { } Catch (Throwable ex) { handleRunFailure (contexto, el control, exceptionReporters, nula ); arrojar nuevaIllegalStateException (ex); } Devolver contexto; }

bandera lógica de procesamiento

privada Banner printBanner (medio ambiente ConfigurableEnvironment) {
         si ( este .bannerMode == Banner.Mode.OFF) {
             retorno  nula ; 
        } 
        ResourceLoader ResourceLoader = ( este .resourceLoader! = Nula )? este .resourceLoader 
                : nueva DefaultResourceLoader (getClassLoader ()); 
        SpringApplicationBannerPrinter bannerPrinter = nuevo SpringApplicationBannerPrinter (ResourceLoader, este .Banner);
        si ( este== .bannerMode Mode.LOG) {
             volver bannerPrinter.print (Medio Ambiente, la presente .mainApplicationClass, Logger); 
        } 
     // Banner no está cerrado y se escribe en el archivo de registro no especifica el tiempo, vienen a este
bannerPrinter.print retorno (Medio Ambiente, el presente .mainApplicationClass, el System.out); } pública Banner Imprimir (Medio Ambiente Medio Ambiente, Clase <?> sourceclass ,, PrintStream OUT) {
     // Obtener aquí contenidos bandera bandera bandera
= getBanner (Medio Ambiente); banner.printBanner (Medio Ambiente, sourceclass ,, OUT); devolver nueva nueva PrintedBanner (Banner, sourceclass,); } privadaGetBanner Banner (Medio Ambiente Medio Ambiente) { Banderas Banderas = nuevos nuevos banners ();
// no tenemos el mejor show de aire imágenes de configuración de la bandera de tipo de contenido (las personas introvertidas son todavía un poco mejor), por lo que vemos el siguiente paso banners.addIfNotNull (getImageBanner (medio ambiente) );
     // estamos basados en texto de la pancarta de configuración, a fin de buscar getTextBanner aquí (Medio Ambiente) banners.addIfNotNull ( getTextBanner (Medio Ambiente) );
IF (banners.hasAtLeastOneBanner ()) { retorno Banderas; } SI ( el presente .fallbackBanner! = nulo ) { devolver el este .fallbackBanner; } retorno DEFAULT_BANNER; } // aquí los estudiantes deben conocer los principios de la
privada Banner getTextBanner (Medio Ambiente Medio Ambiente) {
// obtener la configuración personalizada dirección de archivo de pancartas cadena de ubicación
= environment.getProperty (BANNER_LOCATION_PROPERTY, DEFAULT_BANNER_LOCATION ); Recursos Recursos = el presente .resourceLoader.getResource (UBICACIÓN); IF (resource.exists ()) { devolver nueva nueva ResourceBanner (de recursos); } retorno nula ; } // constantes de archivos DEFAULT_BANNER_LOCATION banner.txt apunta a la
estática final String = DEFAULT_BANNER_LOCATION "banner.txt ";

 

Supongo que te gusta

Origin www.cnblogs.com/vicF/p/12666675.html
Recomendado
Clasificación