この記事では、スプリングブーツに埋め込まれた容器のTomcat構成を紹介し、次のように共有します。
デフォルトのコンテナ
Spring BootのデフォルトのWebプログラムにより、Tomcat埋め込みコンテナTomcatがポート8080を聴くことができ、デフォルトのサーブレットはポートとコンテキストパスの変更です。 Spring Bootでは、その変更方法は非常に簡単です。
リソースファイルで構成します:
server.port = 9090 server.contextpath =/lkl
スプリングブートを起動します
2015-10-04 00:06:55.768 Info 609 --- [Main] Oswshandler.SimpleurlhandLermapping:マッピングされたURLパス[/**/favicon.ico] 00:06:55.844 INFO 609 --- [MAIN] OSJEAANNOTATIONMBEANEXPORTER:Startup2015-10-04 00:06:55.928 Info 609 - [Main] SBCettomCatemCatemBedDedServletContainer:06:55.928 Infoに掲載されたJMX露出00:06:55.930情報609 --- [メイン] com.lkl.springboot.application:3.906秒でアプリケーションを開始しました(4.184で実行されています)
リスニングポート9090は、http:// localhost:9090/lkl/springboot/liaokailinを実行することで正常にアクセスされることがわかります。
カスタムトムキャット
実際のプロジェクトでは、Tomcatポートのシンプルな構成はすべての人のニーズを満たすわけではないため、Tomcatの構成情報をカスタマイズしてTomcatを柔軟に制御する必要があります。
デフォルトのエンコードを定義する例を挙げてください
パッケージcom.lkl.springboot.container.tomcat; import org.springframework.boot.context.embedded.embededservletcontainerfactory; import org.springframework.boot.context.embedded.tomcat.tomcatemdeddeddedebretcontainerfut org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration;/** * tomcat configuration * @author liaokailin * @version $ id:tomcatconfig.java、v 0.1 10月4日tomcatconfig {@bean public embeddedservletcontainerfactory servletcontainer(){tomcatembededservletcontainerfactory tomcat = new tomcatembeddedservletcontainerfactory(); tomcat.seturiencoding( "utf-8"); Tomcatを返します。 }}EmbeddedServletContainerFactoryのBeanを構築し、TomCatemBededDedServletContainerFactoryインスタンスを取得した後、Tomcatを設定できます。たとえば、エンコードはUTF-8に設定されています。
SSL構成
証明書を生成します
keytool -genkey -Alias Springboot -Keyalg RSA -KeyStore/Users/liaokailin/software/ca1/keystoreセットパスワード123456
証明書がTomcatで正しいことを確認します
tomcat/conf/server.xmlファイルを変更します
<コネクタプロトコル= "org.apache.coyote.http11.http11nioprotocol" port = "8443" maxthreads = "200" scheme = "https" secure = "true" sslenabled = "true" keystorefile = "//liaokailin/colate/ca1/ca1/" "fiestore clientauth = "false" sslprotocol = "tls"/>
Tomcatを開始し、http:// localhost:8443にアクセスしてください
スプリングブート埋め込みTomcat SSL
リソースファイルを構成します
server.port = 8443Server.ssl.Enabled = trueserver.ssl.keyalias = springbootserver.keypassword = 123456server.keystore =/users/liaokailin/software/ca1/keystore
スプリングブートを起動します
https:// localhost:8443/springboot/helloworldにアクセスしてください
マルチポート監視構成
SSLを開始した後、HTTPSのみにアクセスでき、HTTPを介してアクセスできません。複数のポートを聴きたい場合は、エンコードを使用して実装できます。
1.以前のSSL構成をログアウトし、構成server.port = 9090を設定します
2。Tomcatconfig.javaを変更します
パッケージcom.lkl.springboot.container.tomcat; Import java.io.file; Import org.apache.catalina.connector.connector; Import org.apache.coyote.http11.http11nioprotocol; Import org.springframework.context.embedded.embeddedservletcontainerfactory; Import org.springframework.boot.context.embedded.tomcat.tomcatembeddedservletcontainerfactory; Import org.springframework.context.context.annotation.buean; org.springframework.context.annotation.configuration;/** * tomcat configuration * @author liaokailin * @version $ id:tomcatconfig.java、v 0.1 2015年10月4日{tomcatembededservletcontainerfactory tomcat = new tomcatembeddedservletcontainerfactory(); tomcat.seturiencoding( "utf-8"); tomcat.addadditionalTomCatConnectors(createsslConnector()); Tomcatを返します。 } private connector createsslconnector(){connector connector = new connector( "org.apache.coyote.http11.http11nioprotocol"); http11nioprotocolプロトコル=(http11nioprotocol)connector.getProtocolhandler(); try {file truststore = new file( "/users/liaokailin/software/ca1/keystore"); connector.setscheme( "https"); protocol.setsslenabled(true); connector.setsecure(true); connector.setport(8443); protocol.setKeyStoreFile(TrustStore.GetAbSolutepath()); protocol.setKeyStorePass( "123456"); protocol.setKeyalias( "Springboot");コネクタを返す; } catch(Exception ex){新しいIllegalStateException( "Cant Access keystore:[" + "keystore" + "]"、ex); }}} addDiditionalTomCatConnectorsメソッドを介して複数のリスニング接続を追加します。この時点で、HTTP 9090ポートとHTTPS 8443ポートを使用できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。