1. Personnalisation et optimisation Spring Boot des conteneurs Tomcat intégrés.
> Il y a trois conteneurs intégrés, à savoir l'entreprise, la jetée, le tomcat et la botte de printemps. Ces trois conteneurs sont implémentés séparément. Les interfaces supérieures sont toutes intégrées, qui sont le noyau principal de cet article.
Il existe deux façons principales de personnaliser et d'optimiser les conteneurs intégrés. La première façon consiste à les configurer via des fichiers de configuration, et dans l'autre sens est de code. Ensuite, les deux façons ci-dessus sont principalement mises en œuvre.
2. Personnaliser et optimiser Tomcat via des fichiers de configuration
> Pour le contenu principal de la configuration, reportez-vous à la classe d'attribut d'attribut de service d'attribut. Ce qui suit montre une configuration de Tomcat
Serveur: Port: 8081 # Tomcat Set Tomcat: Accesslog: # Activer le journal Accès activé: True # JOG SAVIRE LE SIRECTION DU PATAIN: E: / TMP / LOGS
Pour plus de contenu de configuration, reportez-vous aux propriétés intégrées de la classe org.springframework.boot.autoconfigure.web.serverproperties.
3. Implémentez la configuration et l'optimisation des conteneurs intégrés via le code du code
> Il existe deux façons d'afficher l'optimisation et la personnalisation des conteneurs intégrés à l'aide du code. La première consiste à implémenter le personnalisateur de conteneurs de servlet intégré (org.springframework.boot.context.embedded.embedDeservletContainerComzer) et remettre la classe de la gestion des conteneurs de ressort. L'autre consiste à configurer la classe d'implémentation d'interface EmbedDeDServletContainerFactory dans le conteneur de ressort. Ici, nous ciblons principalement le Tomcat intégré, c'est-à-dire la classe TomCatembedDervletContainerFactory
3.1. La première méthode consiste à implémenter l'interface EmbedDedServletContainerCusizer et à la remettre à Spring Container Management
@ComponentPublic class MyEmbedDeDServletContainerCustanizer implémente embedDedServletContainerCustomzer {@Override public void personnaliser (ContestrurableMedDedServletContainer Container) {//org.springframework.boot.contex La valeur par défaut est Tomcat Container System.out.println (contener.getClass ()); Conteneur (TomCatembedDeservletContainerFactory) // Définir Port Factory.Setport (8088); // Définit Tomcat Root Directory Factory.SetBaseDirectory (nouveau fichier ("d: / tmp / tomcat")); // Définissez le répertoire de stockage du journal d'accès factory.addContextValves (getLogAccessLogValue ()); // Définissez les threads et connexions Tomcat Factory.AddConnectorCustomzers (new MyTomCatConnectorCustomzer ()); // Initialisez l'objet ServletContext factory.addinitialisers ((servletContext) -> {System.out.println ("= = = = get server information = =" + servletContext.getServeRinfo ());}); } private AccessLogValve getLogAccessLogValue () {AccessLogValve AccessLogValve = new ACCESSLOGVALVE (); AccessLogValve.setDirectory ("d: / tmp / tomcat / logs"); AccessLogValve.SetEnabled (true); AccessLogValve.SetPattern (constants.accesslog.common_pattern); AccessLogValve.SetPrefix ("Springboot-Access-log"); AccessLogValve.SetSuffix (". txt"); return AccessLogValve; }} / ** * Personnalisez le nombre de connexions et de threads de Tomcat * / class MyTomCatConnectorCustomizer implémente TomCatConnectorCustomizer {@Override public void Persurize (Connector Connector) {// Connection Protocol http / 1.1 System.out.println (Connector.getProtoCol ()); // Processeur de protocole de connexion org.apache.coyote.http11.http11nioprotocol System.out.println (Connector.GetProtoColHandler (). GetClass ()); // http11nioprotocol http11nioprotocol protoColHandler = (http11nioprotocol) connector.getProtoColHandler (); // Définit le nombre maximum de connexions ProtoColHandler.SetMaxConnections (2000); // Définit le nombre maximum de threads protococolHandler.setMaxThreads (500); }}3.1. Configurez la classe d'implémentation EmbedDedServletContainerFactory dans le conteneur à ressort
@SpringBootConfigurationPublic Class WebserverConfiguration {@Bean public EmbedDedServletContainerFactory EmbedDeservletContainerFactory () {TomCateMedDeservletContainerFactory Factory = New TomCateMedDeservletContainerFactory (); // Définir Port Factory.Setport (8089); // SET 404 Error Interface Factory.AdderrorPages (nouveau ErrorPage (httpstatus.not_found, "/404.html")); // Définit le factory.addinitialisers ((servletContext) -> {System.out.println ("= = = = get Server Information =" + ServletContext.getServeRinfo ());}); // Définit le nombre maximum de connexions et le nombre maximum de threads factory.addconnectorCustomzers ((connecteur) -> {http11Nioprotocol ProtocolHandler = (http11nioprotocol) connector.getProtoColHandler (); ProtoColandler.SetMaxConnection (2000); ProtoColHandler.SetMaxThreads (500); }); // Définissez le répertoire où le fichier de journalisation est accessible en factory.addContextValves (getLogAccessLogValue ()); Retour Factory; } private AccessLogValve getLogAccessLogValue () {AccessLogValve AccessLogValve = new ACCESSLOGVALVE (); AccessLogValve.setDirectory ("d: / tmp / logs"); AccessLogValve.SetEnabled (true); AccessLogValve.SetPattern (constants.accesslog.common_pattern); AccessLogValve.SetPrefix ("Springboot-Access-log"); AccessLogValve.SetSuffix (". txt"); return AccessLogValve; }}4. Résumé
Ce qui précède est une explication détaillée des exemples de conteneurs Tomcat intégrés de personnalisation et d'optimisation de démarrage de Spring vous est introduite. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!