Java 多线程Spring引导控制器方法

Java 多线程Spring引导控制器方法,java,spring,multithreading,spring-boot,threadpool,Java,Spring,Multithreading,Spring Boot,Threadpool,因此,我的应用程序(spring boot)运行非常慢,因为它使用Selenium来刮取数据、处理数据并显示在主页上。我遇到了多线程,我认为让它运行得更快对我的应用程序很有用,但是教程似乎显示在一个带有主线程的普通java应用程序的设置中。如何在控制器中多线程处理此单一方法 方法是。。都是硒的方法。我希望同时运行这4行代码 @Autowired private WebScrape webscrape; @RequestMapping(value = &qu

因此,我的应用程序(spring boot)运行非常慢,因为它使用Selenium来刮取数据、处理数据并显示在主页上。我遇到了多线程,我认为让它运行得更快对我的应用程序很有用,但是教程似乎显示在一个带有主线程的普通java应用程序的设置中。如何在控制器中多线程处理此单一方法

方法是。。都是硒的方法。我希望同时运行这4行代码

   @Autowired
        private WebScrape webscrape;
    
    @RequestMapping(value = "/")
    public String printTable(ModelMap model) {
        model.addAttribute("alldata", webscrape.getAllData());
        model.addAttribute("worldCases", webscrape.getWorlValues().get(0));
        model.addAttribute("worldDeaths", webscrape.getWorlValues().get(1));
        model.addAttribute("worldPop", webscrape.getWorlValues().get(2));

        return "index";
    }

对于每个请求到请求的映射,将创建一个新线程,这样您想要实现的就已经存在了。请看一看:

如果出于其他原因仍要使用多线程,您可以发现以下内容非常有用:

@SpringBootApplication
@EnableAsync
public class ExampleSpringBootApp {
    @Bean
    public TaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(2);
        executor.setMaxPoolSize(5);
        executor.setQueueCapacity(25);
        return executor;
    }

    public static void main(String[] args) {
        //some code
    }
}
这将为您创建线程池,您可以为其提供任务

更多信息和指南: