java - Atmosphere + Spring + Autowiring 问题

标签 java spring servlets spring-mvc atmosphere

我正在开发一个网络应用程序并尝试集成聊天功能(目前)。我正在使用 Spring 和 Atmosphere 来做到这一点。 我设法让聊天正常进行,但现在我似乎遇到了问题。 我在一个单独的 servlet 中使用 @ManagedService(类似于atmosphere-chat-multiroom 示例),现在我需要访问 spring 应用程序内的 bean。对于我正在使用的其余 servlet,这可以完美地工作,但是当我在 Atmosphere ManagedService 中执行此操作时,我陷入了死胡同,该服务始终返回为 null。

有人知道我能做什么吗?

@ManagedService(path = "{room: [a-zA-Z][a-zA-Z_0-9]*}")
@Singleton
public class ChatRoom {
private final Logger logger = LoggerFactory.getLogger(ChatRoom.class);

private final ConcurrentHashMap<String, String> users = new ConcurrentHashMap<String, String>();
private String chatroomName;
private String mappedPath;
private BroadcasterFactory factory;
@Autowired
IFriendsServices friendServices;

@Message(encoders = { JacksonEncoder.class }, decoders = { UserDecoder.class })
public void onPrivateMessage(ChatUserMessageDTO user) throws IOException {
    String userUUID = users.get(user.getUser());
    friendServices.createChatMessage(user.getUser(), user.getSource(), user.getMessage());
    if (userUUID != null) {
        AtmosphereResource r = AtmosphereResourceFactory.getDefault().find(userUUID);
        if (r != null) {
            ChatProtocolMessageDTO m = new ChatProtocolMessageDTO(user.getSource(), user.getMessage(),
                    users.keySet(), factory.lookupAll());
            factory.lookup(mappedPath).broadcast(m, r);
        }
    }
}

最佳答案

你好,我在 Spring 挖掘时发现了很多有趣的事情。对于非 Spring 托管类,请按照以下 2 个步骤使用 Autowiring 访问属性

public class ChatRoom extends SpringBeanAutowiringSupport{ 

and then use @Autowire 

关于java - Atmosphere + Spring + Autowiring 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788421/

相关文章:

java - 如何声明扩展参数化类型的类型变量?

java - 用于碰撞检测的多边形位置不会更新?或碰撞?

java - 仅从Eclipse JEE Neon运行/调试Spring Boot应用程序?

java - 如何在 JSP 页面上映射一对多关系并在提交页面时存储它们?

java - 根据 HttpServletRequest 参数使 HTML 元素可见/不可见

java - 查询hibernate中向经理汇报的总人数

java - getParameterAnnotations 返回空数组

java - JAVA 中基于 Rest 的 Web 服务

java - 启动时加载和 Jersey

java - Itext 和 PngImage