我不知道什么是合适的术语,但通过"一次拍摄"程序我的意思是一个从主函数开始到结束并退出的程序。
通常我会用这样的样板来做:
AnnotationApplicationContext ac = new AnnotationApplicationContext("myConfigClass")
MyBean myStuff = ac.getBean("myBean");
myStuff.doSomething();
ac.flush();
ac.close();
我仍然可以使用大量的Spring功能编程。然而,当我尝试Spring启动时,我只是这样做(请忽略语法错误,因为我在我的脑海中涂写了片段) - 它认为它进一步简化了编程(使用更少的行和更少的注释):< / p>
@SpringBootApplication
public class App {
public static void main(String[] args){
SpringApplication.run(App.class);
}
}
但是,我注意到该程序在启动后仍作为服务保留,直到被明确杀死。
因此,我的问题是:Springboot是否仅适用于Spring MVC或Web服务式服务等Web应用程序?而且它并不意味着简单的一次拍摄&#34;程式?一个相关的问题是:当使用和运行SpringBootApplication时,嵌入式tomcat(或Jitty)是否始终启动?
希望我让自己明白了。有人可以帮忙吗?
答案 0 :(得分:3)
如果使用CLR(CommandLineRunner)运行Spring启动应用程序,则不需要服务器
@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();
}
}