是否可以创建类似此类的内容并在 Spring 中以这种方式运行
public class CustomThread extends Thread {
@Override
public void run() {
while (true){
System.out.println("I am "+ getName());
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
for (int i= 0;i<5;i++) new TestThread().start();
}
}
还是我需要写一些额外的东西?(或者这种方法通常不好?)
如果它是一个使用 Spring 进行依赖注入的常规程序,那么你可以。对于更大的 spring 方式,您可以声明
CustomThread一个 bean 并在 的帮助new下创建它,而是从上下文中获取它。这将允许将所有内容引入其中。虽然,使用java.util.concurrent包中更现代的抽象仍然更好-
Executors和Futures. 但这不仅是对 Spring 程序的推荐,也是对一般 Java 程序的推荐。如果这是一个基于 Spring MVC 或 Spring Web Flux 的 Web 应用程序,那么最好使用这些框架的多线程机制——异步方法、事件和反应流。