我不知道什么是合适的术语,但“一次性”程序是指从主函数开始运行到结束并退出的程序。
通常我用这样的样板来做:
AnnotationApplicationContext ac = new AnnotationApplicationContext("myConfigClass")
MyBean myStuff = ac.getBean("myBean");
myStuff.doSomething();
ac.flush();
ac.close();
我仍然可以像那样使用大量 Spring 功能进行编程。然而,当我尝试使用 Spring boot 时,我只是这样做(请忽略语法错误,因为我在脑海中草草写下了代码片段)——它认为它进一步简化了编程(使用更少的行和更少的注释):
@SpringBootApplication
public class App {
public static void main(String[] args){
SpringApplication.run(App.class);
}
}
但是,我注意到该程序在启动后一直作为服务,直到被明确终止。
因此,我的问题是:Springboot 是否仅适用于像 Spring MVC 或 webservice 样式服务这样的 Web 应用程序?它不是用于简单的“一次性”程序吗?一个相关的问题是:嵌入式 tomcat(或 Jitty)是否总是在使用和运行 SpringBootApplication 时启动?
希望我让自己明白了。谁能帮忙?
最佳答案
如果使用 CLR (CommandLineRunner) 运行 spring boot 应用程序,则不需要服务器
@SpringBootApplication
public class App implements CommandLineRunner {
@Autowired
private MyBean myStuff;
public static void main( String[] args ) {
SpringApplication.run(App.class, args);
}
public void run(String... strings) throws Exception {
myStuff.doSomething();
}
}
关于java - "one shot"程序可以用spring boot吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40345047/