WebSocketMessageBrokerStats - 如何设置 loggingPeriod
WebSocketMessageBrokerStats - how to set loggingPeriod
如何在 WebSocketMessageBrokerStats 中设置 loggingPeriod 以减小值(默认为 30')
WebSocketMessageBrokerStats 由@Bean 在WebSocketMessageBrokerConfigurationSupport
中加载
版本:Spring4.2.0.RELEASE
我当前的配置:
@Configuration
@EnableWebSocketMessageBroker
@EnableScheduling
public class AppWebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(final MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
}
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
registry.addEndpoint("/entry")
.setAllowedOrigins("*")
.withSockJS()
.setDisconnectDelay(10000);
}
}
根据 WebSocketMessageBrokerStats javadoc:
This class is declared as a Spring bean by the above configuration with the name "webSocketMessageBrokerStats"
因此您可以将其添加到您的配置中 class:
@Autowired
private WebSocketMessageBrokerStats webSocketMessageBrokerStats;
@PostConstruct
public void init() {
webSocketMessageBrokerStats.setLoggingPeriod(10 * 1000); // desired time in millis
}
如果要在 Spring 将 bean 投入服务之前设置日志记录周期,您可以使用 PostBeanProcessor
:
@Bean
public BeanPostProcessor beanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof WebSocketMessageBrokerStats) {
WebSocketMessageBrokerStats webSocketMessageBrokerStats = (WebSocketMessageBrokerStats) bean;
webSocketMessageBrokerStats.setLoggingPeriod(30 * 1000); // your customization
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
};
}
WebSocketMessageBrokerStats
与Toyo的方式没有太大区别。但是,如果您有一个不允许您在初始化后更改设置的 bean,这种方法将始终有效。
如何在 WebSocketMessageBrokerStats 中设置 loggingPeriod 以减小值(默认为 30')
WebSocketMessageBrokerStats 由@Bean 在WebSocketMessageBrokerConfigurationSupport
中加载版本:Spring4.2.0.RELEASE
我当前的配置:
@Configuration
@EnableWebSocketMessageBroker
@EnableScheduling
public class AppWebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(final MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
}
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
registry.addEndpoint("/entry")
.setAllowedOrigins("*")
.withSockJS()
.setDisconnectDelay(10000);
}
}
根据 WebSocketMessageBrokerStats javadoc:
This class is declared as a Spring bean by the above configuration with the name "webSocketMessageBrokerStats"
因此您可以将其添加到您的配置中 class:
@Autowired
private WebSocketMessageBrokerStats webSocketMessageBrokerStats;
@PostConstruct
public void init() {
webSocketMessageBrokerStats.setLoggingPeriod(10 * 1000); // desired time in millis
}
如果要在 Spring 将 bean 投入服务之前设置日志记录周期,您可以使用 PostBeanProcessor
:
@Bean
public BeanPostProcessor beanPostProcessor() {
return new BeanPostProcessor() {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof WebSocketMessageBrokerStats) {
WebSocketMessageBrokerStats webSocketMessageBrokerStats = (WebSocketMessageBrokerStats) bean;
webSocketMessageBrokerStats.setLoggingPeriod(30 * 1000); // your customization
}
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
};
}
WebSocketMessageBrokerStats
与Toyo的方式没有太大区别。但是,如果您有一个不允许您在初始化后更改设置的 bean,这种方法将始终有效。