关闭 Web 容器

控制依赖

  • 最简单办法是 不添加 Web 相关依赖

配置方式

  • spring.main.web-application-type=none
    关闭web应用程序的一个支持

编程方式

  • SpringApplication
    • 设置 setWebApplicationType() 为none

  • SpringApplicationBuilder
    • 设置 web() 为none

  • 在调用 SpringApplication 的 run() 方法前
    设置 WebApplicationType 为none

常用工具类

不同的 Runner
功能一样 参数不一样

  • ApplicationRunner
    • 参数是 ApplicationArguments

  • CommandLineRunner
    • 参数是 String[]

如果有多个 ApplicationRunner 或者 CommandLineRunner 可以添加 @order 注解 去指定运行顺序
返回码

  • ExitCodeGenerator
    返回码0是正常结束 不是0为异常结束

例子

目录

代码

@Component
@Order(2)
@Slf4j
public class BarApplicationRunner implements ApplicationRunner {@Overridepublic void run(ApplicationArguments args) throws Exception {log.info("Bar");}
}
@SpringBootApplication
public class CommandLineApplication {public static void main(String[] args) {new SpringApplicationBuilder(CommandLineApplication.class) //根据SpringApplicationBuilder把web中的WebApplicationType设置为none.web(WebApplicationType.NONE).run(args);// 根据 application.properties 里的配置来决定 WebApplicationType
//      SpringApplication.run(CommandLineApplication.class, args);}
}
@Component
@Order(3)
@Slf4j
public class ExitApplicationRunner implements ApplicationRunner, ApplicationContextAware {private ApplicationContext applicationContext;@Overridepublic void run(ApplicationArguments args) throws Exception {int code = SpringApplication.exit(applicationContext);//取出返回码log.info("Exit with {}.", code);System.exit(code);}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}
}
@Component
@Order(1)
@Slf4j
public class FooCommandLineRunner implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {log.info("Foo");}
}
@Component
public class MyExitCodeGenerator implements ExitCodeGenerator {@Overridepublic int getExitCode() {return 1;}//设置返回码
}

application.properties

spring.main.web-application-type=none
#关闭web应用程序支持

pom文件

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

如何编写命令行运行的程序相关推荐

  1. Windows命令行运行Java程序

    如何在Windows命令行运行Java程序 准备工作 1.安装JDK 安装JDK(Java Development Kit Java开发工具包 又称SDK)Oracle公司JDK下载地址,直接下载,然 ...

  2. 设置PATH 环境变量、pyw格式、命令行运行python程序与多重剪贴板

    pyw格式简介: 与py类似,我认为他们俩卫衣的不同就是前者运行时候不显示终端窗口,后者显示 命令行运行python程序: 在我学习python的过程中我通常使用IDLE来运行程序,这一步骤太过繁琐( ...

  3. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

  4. java 程序命令_命令行运行JAVA程序

    如果出现找不到变量,核查环境变量是否配置好 可以运行javac java java -version看是否正常 注意要在对应的目录下 核查java文件里边的名字 class文件名是否与java文件名一 ...

  5. java命令行运行 package_使用命令行运行Java程序

    很久没有试过用Java命令行来运行程序了.今天用的时候都感觉有点不太顺利了.所以特别记下来,以免后边什么时候又忘掉. 首先是将编写好的Java程序放在某一文件夹下边.(本文以D盘javabasecod ...

  6. 命令行运行python程序

    对于新入门的小白来说,学习python的第一步就是如何在命令行中运行python程序. 1. 配置环境变量(必须).请自行百度.否则,如下 2. python命令行只能运行程序代码(类似matlab) ...

  7. 如何在命令行运行java程序

    1.先在命令行进入到保存java程序的文件夹下 进入方法: 1.按住win + R进入命令行 2.输入cmd,回车或点击确认 3.进入文件夹找到java文件所在地址 4.复制路径 5.命令行输入文件所 ...

  8. 如何用命令行运行python程序_如何使用运行python代码命令行.exe从C应用程序?

    下面的例子运行命令运行TCL脚本(我已经安装在我的计算机上了),您只需要替换命令就可以运行Python并添加脚本文件. 注意脚本文件名后面的"&exit"命令-这会使cmd ...

  9. 用dos命令行执行java程序的方法

    今天开始学java了,从图书馆借了一本Deitel公司的书,坑爹的是上面还是用命令行运行java程序,没有用任何ide,鉴于有些初学者可能需要这么运行,写一下方法.首先要安装jdk,然后记住安装路径. ...

最新文章

  1. 为什么程序员都不喜欢使用 switch ,而是大量的 if……else if ?
  2. c语言断链隐藏dll,通过断链隐藏模块(DLL)
  3. 全局容器的创建和使用---单件模式和IOC的容器的应用
  4. Python之NumPy(axis=0 与axis=1)区分
  5. 【HDU - 3002】King of Destruction(无向图全局最小割,SW算法,模板题)
  6. Jupyter Notebook的安装和使用
  7. 怎么修改php.in的时间,PHP时间和日期函数怎么操作
  8. ie代理配置错误_电缆厂组织结构图的7个常犯错误!
  9. perl CGI::Session
  10. java初学。加载图片
  11. 分享一个游戏源码、游戏服务端、下载网站
  12. 虚拟机ip映射到外网
  13. anki android 导入路径,3.1 导入卡片
  14. 20145322 何志威《网络对抗》shellcode注入Return-to-libc攻击深入
  15. meta分析 2. 固定效应和随机效应
  16. cocos2d-x : csb的加载
  17. JS 播放语音,将文本转成语音播放
  18. asterisk连接sip139网络电话
  19. dva学习-入门安装和目录介绍
  20. matlab查看俯视图,关于matlab:校准图像以获取位于同一平面上的点的俯视图

热门文章

  1. navicat 10.1.7的序列号
  2. STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)
  3. 三种常用虚拟/沙盘软件-保护系统
  4. 解决openwrt页面升级中“不支持所上传的文件格式”问题
  5. 【操作系统学习笔记 ⑮ 完结篇】——文件管理 [ 文件系统 + 索引文件的详细样例 ]
  6. OPPO|后端工程师|一面 二面| 远程牛客面试 | 凉经 (2021/08/19 | 2021/09/01)
  7. 电子设计竞赛(5)-整流电路
  8. Win7系统插入USB鼠标自动禁用触摸板方法
  9. springboot项目系列-论坛系统06整合rabbitmq实现异步发邮件
  10. Mac上哪款邮件管理工具好用呢?试试这个