27.3.4 自定义内嵌servlet容器
常见的Servlet容器配置可以通过Spring Environment
进行设置,通常将这些属性定义到application.properties
文件中。
常见的服务器配置包括:
网络设置:监听进入Http请求的端口(
server.port
),接口绑定地址server.address
等。Session设置:session是否持久化(
server.session.persistence
),session超时时间(server.session.timeout
),session数据存放位置(server.session.store-dir
),session-cookie配置(server.session.cookie.*
)。Error管理:错误页面的位置(
server.error.path
)等。SSL。
Spring Boot会尽量暴露常用设置,但这并不总是可能的。对于不可能的情况,可以使用专用的命名空间提供server-specific配置(查看server.tomcat
,server.undertow
)。例如,可以根据内嵌servlet容器的特性对access logs进行不同的设置。
注 具体参考ServerProperties。
编程方式的自定义
如果需要以编程方式配置内嵌servlet容器,你可以注册一个实现EmbeddedServletContainerCustomizer
接口的Spring bean。EmbeddedServletContainerCustomizer
能够获取到包含很多自定义setter方法的ConfigurableEmbeddedServletContainer
,你可以通过这些setter方法对内嵌容器自定义。
直接自定义ConfigurableEmbeddedServletContainer
如果以上自定义手法过于受限,你可以自己注册TomcatEmbeddedServletContainerFactory
,JettyEmbeddedServletContainerFactory
或UndertowEmbeddedServletContainerFactory
。
很多配置选项提供setter方法,有的甚至提供一些受保护的钩子方法以满足你的某些特殊需求,具体参考源码或相关文档。
Last updated
Was this helpful?