40. Spring Integration
Spring Boot为使用Spring Integration提供了一些方便,引入spring-boot-starter-integration
“Starter”,Spring Integration提供消息传递和其他传输(如HTTP、TCP和其他)的抽象,如果你的类路径上有Spring Integration,它通过@EnableIntegration
注解初始化。
Spring Boot还配置了一些特性,这些特性是由额外的Spring Integration模块的存在触发的。如果spring-integration-jmx
也在类路径中,则在JMX上发布消息处理统计信息,如果spring-integration-jdbc
是有效的,则可以在启动时创建默认的数据库模式,如下所示:
spring.integration.jdbc.initialize-schema=always
有关详细信息,请参阅IntegrationAutoConfiguration
和IntegrationProperties
类。
默认情况下,如果存在Micrometer meterRegistry
bean,那么Spring Integration度量将由Micrometer管理,如果你希望使用遗留Spring Integration度量,请向应用程序上下文添加DefaultMetricsFactory
bean。
41. Spring Session
Spring Boot为各种数据存储提供了Spring Session自动配置,在构建Servlet web应用程序时,可以自动配置以下存储:
- JDBC
- Redis
- Hazelcast
- MongoDB
在构建reactive web应用程序时,可以自动配置以下存储:
- Redis
- MongoDB
如果类路径中存在一个Spring Session模块,那么Spring Boot将自动使用该存储实现,如果你有多个实现,你必须选择你希望用来存储sessions的StoreType,例如,要使用JDBC作为后端存储,可以对应用程序进行如下配置:
spring.session.store-type=jdbc
你可以通过设置
store-type=none
来禁用Spring Session
每个存储都有特定的附加设置,例如,可以为JDBC存储定制表的名称,如下面的示例所示:
spring.session.jdbc.table-name=SESSIONS
对于设置会话的超时,你可以使用spring.session.timeout
属性,如果没有设置该属性,那么自动配置将返回server.servlet.session.timeout
的值。
42. 通过JMX监控和管理
Java管理扩展(JMX)提供了一种监控和管理应用程序的标准机制,默认情况下,Spring Boot创建了有一个ID的MBeanServer
的bean,并公开了使用Spring JMX注解(@ManagedResource
、@ManagedAttribute
或@ManagedOperation
)注解的任何bean。
有关更多细节,请参见JmxAutoConfiguration类。