3

如何使用 XML 或 Java Config但没有Spring Boot创建Spring Java Web 套接字项目。在哪里可以找到分步教程。我不知道如何在 ecliplse 中使用 spring boot。我也不想使用 gradle 或 maven。我没有找到在eclipse中使用spring boot的教程。由于我是 spring 新手,我无法在没有 maven 或 gradle 的情况下启动项目。如果我需要使用 Eclipse,我需要学习如何在没有任何内置工具的情况下创建一个 spring 项目。这纯粹是为了学习目的。

下面是我用来替换 Spring boot 相关主类的类

AppConfig 类

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan("hello")
@EnableWebMvc  
public class AppConfig  {



}

WebAppInitializer 类

import javax.servlet.ServletContext;  
import javax.servlet.ServletException;  
import javax.servlet.ServletRegistration.Dynamic;  
import org.springframework.web.WebApplicationInitializer;  
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;  
import org.springframework.web.servlet.DispatcherServlet;

public class WebAppInitializer implements WebApplicationInitializer{// extends AbstractAnnotationConfigDispatcherServletInitializer {

        public void onStartup(ServletContext servletContext) throws ServletException 
        {
            try
            {
                 AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();  
                    ctx.register(AppConfig.class);  
                    ctx.setServletContext(servletContext);    
                    Dynamic dynamic = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx)); 

                   dynamic.addMapping("/");
                   // dynamic.addMapping("/springStomp/");
                    dynamic.setLoadOnStartup(1);
                    //dynamic.setAsyncSupported(true);
                    //ctx.refresh();
                    System.out.println("config done");

            }
            catch(Exception e)
            {
                e.printStackTrace();
                System.out.println("error");
            }
       }
}

WebSocketConfig 类

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        System.out.println("inside websocket config class");
        config.enableSimpleBroker("/topic");
        config.setApplicationDestinationPrefixes("/app");
    }
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/hello").withSockJS();
    }
}

其余与spring web socket教程中的相同

4

2 回答 2

1

我知道那是什么感觉,我的公司网络对我下载依赖项的 maven 调用不友好。如果您不得不像我一样艰难地做事,请访问 www.mvnrepository.com,只需在搜索中输入 spring,您就可以下载所需的 jar。如果您在部署或编译期间遇到任何 NoClassDef 错误,它通常会告诉您缺少什么,然后在链接中再次搜索关键字。

于 2016-02-16T12:34:36.750 回答
-1

只是:

  1. 在eclipse中添加gradle插件
  2. 从 spring 站点导入以下项目作为 gradle 项目
  3. ???
  4. 利润!

如果你不想使用 spring boot 删除任何 spring boot 依赖项,添加常规 deps,如 spring-context、spring-webmvc 等。最后添加 spring-websocket 和 spring-messaging 库。

于 2015-01-15T12:04:21.963 回答