java - "one shot"程序可以用spring boot吗

标签 java spring web-services spring-mvc spring-boot

我不知道什么是合适的术语,但“一次性”程序是指从主函数开始运行到结束并退出的程序。

通常我用这样的样板来做:

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/

相关文章:

java - springboot api 不工作。

mysql - 如何将django项目(考勤系统)上传到centOS服务器

java - Websphere - Transformer.setParameter 不起作用

java - 我们如何使用 Criteria Query 在 Spring JPA 中查询一对多关系

java - 无法启动 Apache TomEE 服务器 - 未找到部署 : openejb/Deployer

java - @Autowired 不起作用

java - 如何在 jSTL 中迭代将映射作为字段的对象列表?

ios - 在IOS中的webservice中加载数据

java - 如何在java中使用selenium webdriver禁用所有警报?

java - Spring Integration TCP 连接在多线程负载/压力测试下被拒绝