Spring4会话
Posted
技术标签:
【中文标题】Spring4会话【英文标题】:Spring4 session 【发布时间】:2014-12-04 07:25:59 【问题描述】:对不起!我在这里有个问题。哪个版本的 Spring 是“org.springframework.session.*”?我根本无法在 Spring4.0 jar 中找到它。 这是课程:
public abstract class AbstractSessionWebSocketMessageBrokerConfigurer<S extends ExpiringSession>
extends AbstractWebSocketMessageBrokerConfigurer
@Autowired
@SuppressWarnings("rawtypes")
private SessionRepository sessionRepository;
@Autowired
private ApplicationEventPublisher eventPublisher;
@Override
public void configureClientInboundChannel(ChannelRegistration registration)
registration.setInterceptors(sessionRepositoryInterceptor());
@Override
public final void registerStompEndpoints(StompEndpointRegistry registry)
configureStompEndpoints(new SessionStompEndpointRegistry(registry,sessionRepositoryInterceptor()));
/**
* Register STOMP endpoints mapping each to a specific URL and (optionally)
* enabling and configuring SockJS fallback options with a
* @link SessionRepositoryMessageInterceptor automatically added as an
* interceptor.
*
* @param registry
* the @link StompEndpointRegistry which automatically has a
* @link SessionRepositoryMessageInterceptor added to it.
*/
protected abstract void configureStompEndpoints(StompEndpointRegistry registry);
@Override
public void configureWebSocketTransport(
WebSocketTransportRegistration registration)
registration.addDecoratorFactory(wsConnectHandlerDecoratorFactory());
@Bean
public WebSocketRegistryListener webSocketRegistryListener()
return new WebSocketRegistryListener();
@Bean
public WebSocketConnectHandlerDecoratorFactory wsConnectHandlerDecoratorFactory()
return new WebSocketConnectHandlerDecoratorFactory(eventPublisher);
@Bean
@SuppressWarnings("unchecked")
public SessionRepositoryMessageInterceptor<S> sessionRepositoryInterceptor()
return new SessionRepositoryMessageInterceptor<S>(sessionRepository);
static class SessionStompEndpointRegistry implements StompEndpointRegistry
private final StompEndpointRegistry registry;
private final HandshakeInterceptor interceptor;
public SessionStompEndpointRegistry(StompEndpointRegistry registry,HandshakeInterceptor interceptor)
this.registry = registry;
this.interceptor = interceptor;
public StompWebSocketEndpointRegistration addEndpoint(String... paths)
StompWebSocketEndpointRegistration endpoints = registry.addEndpoint(paths);
endpoints.addInterceptors(interceptor);
return endpoints;
【问题讨论】:
【参考方案1】:Spring Session 是一个单独的项目:https://github.com/spring-projects/spring-session。
您应该使用一些依赖管理工具(Gradle 或 Maven)来控制您的应用程序的工件。
在此处查看 WebScoket 示例:https://github.com/spring-projects/spring-session/tree/master/samples/websocket。
Spring Session 工件是:
compile "org.springframework.session:spring-session:1.0.0.RC1"
【讨论】:
因为现在是一个孵化项目,你还应该配置maven/gradle来使用这个工件存储库:repo.spring.io/libs-milestone 感谢 Artem Bilan。非常感谢! 感谢您的提醒。我这里还有一个问题。我还不能解决它。你能帮我解决它吗?一个是[链接]***.com/questions/27352255/websocket-registrylistener另一个是[链接]***.com/questions/27353716/…以上是关于Spring4会话的主要内容,如果未能解决你的问题,请参考以下文章