springboot configurar a faixa de inicialização e configuração personalizada Análise Princípio

prefácio

Notamos springboot quando o projeto começou, o console será impresso que vem com banner, em seguida, para alguns alunos que comparam show aéreo, demasiado monótono muito comum demasiado geral e, portanto, é o desempenho em tempo real da tecnologia

 

banner personalizado

Muito simples, basta adicionar um arquivo banner.txt costume na lata diretório de recursos

 

conteúdo banner.txt

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

 

================= linha divisória =============================== =

Como um programa de macaco show aéreo, é claro que não pode simplesmente parar em vão configurar um banner personalizado, vamos para o código-fonte da seguinte Chou Chou por que tal configuração pode alcançar um banner personalizado, para ir de ~

Primeiro, insira o Aplicação da entrada principal da função inicia o método de execução, vamos dar uma olhada agora ir passo a passo

SpringApplication classe 

pública  estática ConfigurableApplicationContext RUN (<?> Class PrimarySource, String ... args) {
         return RUN ( new new <?> Class [] {} PrimarySource, args); 
    } // novos novo SpringApplication (fontes primárias) não temos este método veja, esta é uma montagem automática springboot lógica (SPI), e nós olhamos diretamente atrás RUN (args )
 

pública estática ConfigurableApplicationContext RUN (Class <?> [] fontes primárias, string [] args) { retornar novo novo SpringApplication (fontes primárias). RUN (args) ; } pública ConfigurableApplicationContext RUN (String ... args) { Cronômetro = novo Cronometro (); stopWatch.start (); Contexto ConfigurableApplicationContext = nulo ; Coleção <SpringBootExceptionReporter> exceptionReporters = new ArrayList <> (); configureHeadlessProperty (); SpringApplicationRunListeners ouvintes = getRunListeners (args); listeners.starting (); tente { ApplicationArguments applicationArguments = novas DefaultApplicationArguments (args); ConfigurableEnvironment ambiente = prepareEnvironment (ouvintes, applicationArguments); configureIgnoreBeanInfo (Ambiente);
       // descobrimos que este é um processo passo bandeira início lógico, o ponto foi ver Bandeira printedBanner
= printBanner (Ambiente); contexto = createApplicationContext (); exceptionReporters . = getSpringFactoriesInstances (SpringBootExceptionReporter classe , nova nova classe] [{ConfigurableApplicationContext. classe }, contexto); prepareContext (contexto, ambiente, os ouvintes, applicationArguments, printedBanner); refreshContext (contexto); AfterRefresh (contexto, applicationArguments); stopWatch.stop (); Se ( esse .logStartupInfo) { novo StartupInfoLogger ( este .mainApplicationClass) .logStarted (getApplicationLog (), cronômetro); } Listeners.started (contexto); callRunners (contexto, applicationArguments); } De captura (ex Throwable) { handleRunFailure (contexto, ex, exceptionReporters, ouvintes); lançar nova IllegalStateException (ex); } Tentar { listeners.running (contexto); } Captura (Throwable ex) { handleRunFailure (contexto, ex, exceptionReporters, nula ); lançar novaIllegalStateException (ex); } Retornar contexto; }

bandeira processamento lógico

privado bandeira printBanner (ambiente ConfigurableEnvironment) {
         se ( este .bannerMode == Banner.Mode.OFF) {
             return  nulo ; 
        } 
        ResourceLoader ResourceLoader = ( este .resourceLoader! = Nulo )? este .resourceLoader 
                : nova DefaultResourceLoader (getClassLoader ()); 
        SpringApplicationBannerPrinter bannerPrinter = novo SpringApplicationBannerPrinter (ResourceLoader, este .banner);
        Se ( esse== .bannerMode Mode.LOG) {
             retornar bannerPrinter.print (Meio Ambiente, a este .mainApplicationClass, Logger); 
        } 
     // bandeira não está fechada e é escrito para o arquivo de log não especifica o tempo, vir a este
bannerPrinter.print retorno (Ambiente, a este .mainApplicationClass, o System.out); } pública bandeira impressão (Meio Ambiente Meio Ambiente, Class <?> SourceClass ,, PrintStream OUT) {
     // Obter aqui conteúdo do banner banner banner
= getBanner (Ambiente); banner.printBanner (Meio Ambiente, SourceClass ,, OUT); retornar nova nova PrintedBanner (banner, SourceClass,); } privadaGetBanner Banner (Meio Ambiente Meio Ambiente) { Banners = novas novas Banners ();
// não temos o melhor show de ar imagens de configuração bandeira tipo de conteúdo (pessoas introvertidos ainda um pouco melhor são), então vemos o próximo passo banners.addIfNotNull (getImageBanner (meio ambiente) );
     // estamos bandeira configuração baseada em texto, assim que olhar getTextBanner aqui (Ambiente) banners.addIfNotNull ( getTextBanner (Ambiente) );
IF (banners.hasAtLeastOneBanner ()) { return Banners; } IF ( a este .fallbackBanner! = nulo ) { voltar a esta .fallbackBanner; } retorno DEFAULT_BANNER; } // aqui os alunos devem conhecer os princípios da
Privado bandeira getTextBanner (Meio Ambiente Meio Ambiente) {
// obter a configuração personalizada endereço de arquivo bandeira de Cordas LOCALIZAÇÃO
= environment.getProperty (BANNER_LOCATION_PROPERTY, DEFAULT_BANNER_LOCATION ); Resource Resource = a esta .resourceLoader.getResource (localização); IF (resource.exists ()) { retornar novo novo ResourceBanner (Resource); } return nula ; } // constantes pontos de arquivo DEFAULT_BANNER_LOCATION banner.txt à
estática final string = DEFAULT_BANNER_LOCATION "banner.txt ";

 

Acho que você gosta

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