O Spring Boot, como o produto da melhor prática da estrutura da primavera para o conceito de "Convenção sobre Configuração", pode nos ajudar a criar rapidamente aplicativos independentes e baseados em estrutura de mola no nível do produto. A maioria dos aplicativos de inicialização da primavera requer muito pouca configuração para ser executada rapidamente. É um micro-quadro que é bastante consistente com os microsserviços.
1. Pacote de aplicação de inicialização de primavera
O aplicativo de inicialização da mola pode ser digitado em um pacote JAR, com o Tomcat incorporado, para que possa ser iniciado diretamente. No entanto, antes do início do aplicativo de inicialização da primavera, a embalagem é necessária pela primeira vez. Este artigo fala sobre a embalagem do projeto Maven. Os pré -requisitos necessários para a embalagem (o conteúdo no arquivo pom.xml) são:
... <backaging> jar </acheging> ... <Depence> <pursionId> org.springframework.boot </groupiD> <TRAFACTID> primavera-boot-starter-web </storkactid> </dependency> ... <bruct> <clugins> <plugId> org.springFramework.Boot> </grupo> Artift> Artift> artiftftiftf <turtf> artiftftiftf <biltF> artiftf> <bructf> <brugIns> <vgroud> org.springFramework.Boot> </Grupoid> <figuration> <mainClass> com. ***. APLICATIVO </MAINCLASS> </frifiguration> <c Executions> <Execution> <lects> <Goal> reembalagem </lack> </metas> </cemecution> </execuções> </flugin> </flugins> </frupt> ...
O comando do pacote é:
pacote mvn limpo -dmaven.test.skip = true# demonstração $ mvn pacote limpo -dmaven.test.skip = true [info] digitalização para projetos ... [aviso] [aviso] Alguns problemas foram encontrados ao criar o modelo efetivo para o com.example: myProject: jar: 0.0.1 -snapShot [warting] org.springframework.boot: Falta mola-boot-maven-plugin. @ Linha 38, Coluna 17 [Aviso] [Aviso] É altamente recomendável corrigir esses problemas porque eles ameaçam a estabilidade do seu prédio. [Aviso] [Aviso] Por esse motivo, as versões futuras do MAVEN podem mais apoiar a construção de tais projetos malformados. [AVISO] [Info] [Info] --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.0.1-SNAPSHOT [INFO] -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Na verdade) para copiar os recursos filtrados, o IE Build é dependente da plataforma! [Info] Copiando 1 recurso [info] [info] --- maven-compiler-plugin: 3.1: compile (padrão-compile) @ myProject --- [info] alterações detectadas-recompilar o módulo! /Usuários/LTC/Spring Boot Demo/Target/Classes [Info] [Info] --- Maven-RESOURCES-PLUGIN: 2.6: TestResources (padrão-testources) @ myProject --- [info] não copiando recursos de teste [info] [info] --- MAVEN-COMPILER-PLUGIN: 3.1 Fontes [Info] [Info] --- Maven-Surefire-Plugin: 2.12.4: Test (padrão-teste) @ MyProject --- [Info] Os testes são ignorados. [Info] [info] --- maven-jar-plugin: 2.4: jar (default-jar) @ myproject --- [] jarro: Demo/Target/MyProject-0.0.1-Snapshot.jar [info] [info] --- Spring-boot-maven-plugin: 1.5.0.rc1: Repackage (padrão) @ myProject --- [info] ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ou executar execução -> Maven Build ... no eclipse, preencha o pacote limpo -dmaven.test.skip = true em metas, execução, o pacote é concluído.
2. Startup de aplicativo de inicialização de primavera
O comando inicial da bota da primavera é:
java -jar Application.Jar# Demo $ java -Jar Target/MyProject -0.0.1 -Snapshot.jar. ____ __ _ /// ___'_ __ _ _ (_) _ __ __ _ / / / / (() / ___ | '_ |' _ | / / / `| / / / / / / / / / / / / / / / | | | | | | | | | | | | | | | | | |)) .__ | | _ | | _ | | ============================================ ___/=/_/_/:: Spring Boot :: (V1.4.3.release) 2017-01-13 15: 36: 36.911. (/Usuários/LTC/Spring Boot Demo/Target/MyProject-0.0.1-Snapshot.jar Iniciado por Liutianchi in/Usuários/LTC/Spring Boot Demo) 2017-01-13 15: 31: 36.916 Informações 62119 --- [Main] com.test.exemple. 15:31:36.981 INFO 62119 --- [ main] ationConfigEmbeddedWebApplicationContext: Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@b1a58a3: startup date [Fri Jan 13 15:31:36 CST 2017]; Raiz do contexto Hierarchy2017-01-13 15: 31: 38.602 Info 62119 --- [Main] SbcetTomCatembeddedservletContainer: Tomcat inicializado com portas (s): 8080 (http) 2017-01-13 15: 31: 38.615 62119 ----- [-17-13 15: 31: 38.615. : Iniciando o serviço TOMCAT2017-01-13 15: 31: 38.616 Info 62119 --- [Main] org.apache.catalina.core.StandardEngine: Iniciando Motor do servlet: Apache Tomcat/8.5.62017-01-13 15: 31.718 Informações 62119-[‘. occc [tomcat]. [localhost]. 62119 --- [OST-StartStop-1] Osweb.Context.ContextLoader: Root WebApplicationContext: Inicialização concluída em 1740 MS2017-01-13 15: 31: 38.927 Informações 62119 --- [Ost-Startstop-1] OsbwServlet.SertletregistrregistrationBergistrationBean. [/] 2017-01-13 15: 31: 38.932 INFO 62119 --- [OST-StartStop-1] Osbwservlet.FilterRegistrationBean: Filtro de mapeamento: 'METRICSFILTER' para: [/*] 2017-01-13: 31: 38.932 Informações 62119-[/*] OSBWSERVlet.FilterRegistrationBean: Filtro de mapeamento: 'CaracterEncodingFilter' para: [/*] 2017-01-13 15: 31: 38.932 Info 62119 --- [OST-StartStPop-1] OsbwServlet.FilterReGistrationBean: Filtroping: ' 15: 31: 38.932 Info 62119 --- [OST-StartStop-1] OsbWServlet.FilterRegistrationBean: Filtro de mapeamento: 'HiddenHttpMethodFilter' para: [/*] 2017-01-13 15: 31-1-1-1-1-1111111111111110-strart: Filtro de mapeamento: 'httpputformContentFilter' para: [/*] 2017-01-13 15: 31: 38.932 Info 62119 --- [OST-StartStop-1] OSBWWSERVlet.FilterReGistrationBean: Mapping Filter: 'RequestcontextFilter' para: [*] 2017 [OST-StartStop-1] OSBWServlet.FilterRegistrationBean: Filtro de mapeamento: 'WebRequestLoggingFilter' para: [/*] 2017-01-13 15: 31: 38.932 Informações 62119 --- [ost-startstop-1] OsbwServlet.FilterRregistrationBanBanBanBanBanBanBanBanBanBan: [/*]2017-01-13 15:31:39.217 INFO 62119 --- [ main] swsmmaRequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@b1a58a3: startup date [Fri Jan 13 15:31:36 CST 2017]; Raiz do contexto Hierarchy2017-01-13 15: 31: 39.310 Informações 62119 --- [Main] SwsMmareQuestMappingHandLerMapping: mapeado "{[/]}" em java.lang.string com.test.example.home () 2017-01-13 15: 39.33.320. : Mapeado "{[/error]}" para public org.springframework.http.Responseentity <java.util.map <java.lang.string, java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httpServletRequest) 2017-01-13 15: 31: 39.313 Informações 62119-[Main] SwsMareMerMLandMel "{[/erro], produz = [text/html]}" no público org.springframework.web.servlet.modelandview org.springframework.boot.autoconfigure.web.basicerrorcontroller.errorhtml (javax.servlet.http.httpServletRequest, javax.servlet.http.httpsletResponso) Oswshandler.simpleurlHandlerMapping: Path de URL mapeado [/webjars/**] no manipulador do tipo [classe org.springframework.web.servlet.resource.ResourceHttPrequestHandler] 2017-01-13 15: 31: 39.338 621192119211111017-01-13 15: 39: 39.38 6211110 Caminho do URL mapeado [/**] para o manipulador do tipo [classe org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.378 Info 62119 --- [Main] Oswshandler.iOssFapping MainMapping: do tipo [classe org.springframework.web.servlet.resource.resourcehttprequesthandler] 2017-01-13 15: 31: 39.665 Info 62119 --- [principal] osbaemvc.endpointhandlemapping: Mapeado Mapeado "{[/manage/metrics/ {name:.*}] ,methods=guget ].produces=[application/json]}" em public java.lang.object org.springframework.boot.actuate.end.meticsmvCondpoint.value (JAVA.ATATUATE.ENDPOINT.MVC.METRIC-1 Info 62119 --- [Main] Osbaemvc.endpoIntHandlerMapping: mapeado "{[/gerencia/metrics ||/manage/metrics.json ].methods=gut ].produces=ponpplication/json]}" em public java.lang.objectes org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.666 Info 62119 --- [principal] osbaemvc.endpointhandlerMappating: mapeado "{[/gerenciamento/gerenciamento/mappings || /manage/mappings.json ].methods=[get ].produces=[application/json]} "No público java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endmvcadapter.invoke () 2017-01-13 15 310: Osbaemvc.endpoIntHandlerMapping: mapeado "{[/gerencia/trace || /manage/Trace.json ].methods=Getsthge ].produces=[application/json]}" em public java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.667 Info 62119 --- [principal] osbaemvc.endpoiThandlerMappating: mapeado "{/[/gerenciamento] /manage/info.json ].methods=[get ].produces=[application/json]} "No público java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endmmvcadapter.invoke () 2017-01-13 15 310: Osbaemvc.endpoIntHandLermapping: mapeado "{[/gerencia/configProps ||/manage/configprops.json ].methods=[get ].produces=[application/json]}" para public java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.669 Info 62119 --- [principal] osbaemvc.endpoiThandLerMapping: mapeado "{[/gerencial/hepspDump || /manage/heapdump.json]. org.springframework.boot.actuate.endpoint.mvc.heapdumpmvcendpoint.invoke (boolean, javax.servlet.http.httpServleTrequest, javax.servlet.http.httpsletResponse) java.io.ioException, javax.servlet.servlet.servletexception2017-01-13 15: 31: 39.669 Info 62119 --- [main] osbaemvc.endpoiThandlerMapping: mapeado "{[/gerencia/autoconfig || /manage/autoconfig.json ].methods=[get ].produces=[application/json]} "em public java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpoint.vcadapter.invoke () 2012-01-13 15: Osbaemvc.endpoIntHandlerMapping: mapeado "{[/manage/env/{name:.*}], methods=GET ].produces=ponpplication/json]}" em public java.lang.object org.springframework.boot.actuate.endpoint.mvc.environmentMvcendPoint.value (java.lang.string) 2017-01-13 15: 31: 39.673 Informações 62119 --- [Main] Osbaemc.endPoinThandLermapping: Mappped /manage/env.json ].methods=guget ].produces=[application/json]} "em public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 316: Osbaemvc.endpoIntHandlerMapping: mapeado "{[/gerenciamento/health || /manage/health.json ].produces=[application/json]}" em public java.lang.object org.springframework.boot.actuate.endpoint.mvc.healthmvcendpoint.invoke (java.security.principal) 2017-01-13 15: 31: 39.675 Info 62119 --- [main] Osbaemc.EnDumPoTUMPONHANDLERMAPAPAPAGEM: /manage/dump.json ].methods=[get ].produces=[application/json]} "em public java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15 316: osbaemvc.EndpointHandlerMapping : Mapped "{[/manage/shutdown || /manage/shutdown.json],methods=[POST]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.mvc.ShutdownMvcEndpoint.invoke()2017-01-13 15:31:39.678 INFO 62119 --- [Main] Osbaemvc.endpoiThandlerMapping: mapeado "{[/gerencia/beans ||/manage/beans.json ].methods=gut ].produces=[application/json]}" para public java.lang.object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke () 2017-01-13 15: 31: 39.799 Info 62119 --- [principal] OSJEAANONOTATIONMBEANEXPORTER: REGISTING REGERING para o JMX Experimine no startup2017-01713-13 13013: Oscsupport.DefaultLifecycleProcessor: Iniciando feijões na fase 02017-01-13 15: 31: 39.944 Info 62119 --- [Main] sbcettomcatembeddeddedservletContainer: Tomcat Iniciado na porta (s): 8080 (HTTP) 2017 -013: com.test.example: Exemplo iniciado em 4.292 segundos (JVM em execução para 4.726) 3. O aplicativo de inicialização da primavera fecha
Existem duas maneiras principais de fechar a inicialização da mola: enviando sinais de desligamento via HTTP ou usando o serviço Stop.
O pré -requisito para fechar o aplicativo de inicialização da primavera é que o pom.xml adiciona o seguinte conteúdo:
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-boot-starter-actuator </stutifactId> </dependency>
Adicionado no Application.properties:
#Enable ShutdowNendPoints.shutdown.enabled = true#desabilitar a verificação de senha terminais.shutdown.sensitive = false
O comando de fechamento é:
Curl -x Post Host: Port/Shutdown# Demo $ Curl -x Post http: // localhost: 8080/Shutdown {"Message": "Desligando, despedida ..."} $ Curl -x Post Http: // LocalHost: 8080/Manage/Shutdown {"Mensagem": "Shutting Down, pore ...Se você deseja configurar o caminho, precisará adicionar gerenciamento.Context -Path =/Gerenciar no Application.Properties, o comando Shutdown se tornará Curl -x Post Host: Port/Manage/Shutdown.
4. Verificação de segurança
Se a verificação de segurança for necessária ao fechar, adicione o arquivo pom.xml:
<Depencency> <PuerpId> org.springframework.boot </frugiD> <ArtifactId> Spring-Boot-Starter-Security </ArtifactId> </Dependency>
Adicionado no Application.properties:
#Encontres de verificação de segurança de desligamento de desligamento.Sensitive = true#Verifique o nome de usuário Security.User.Name = Admin#Verifique se a senha Security.User.Password = Admin#Role Management.Security.Role = SuperUser#Especifique a porta Management.port = 8081#Especifique o Administração de Endereço.address = 127.0.0.1
O comando de fechamento é:
Curl -u Admin: Admin -x Post http://127.0.0.1:8081/manage/shutdown# Demo $ Curl -U Admin: Admin -x Post http://127.0.0.1:8081/Manage/shutdown {message":7.0.1:8081/manage/shutdown {message":"hutting, porp.O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.