如何编写命令行运行的程序
关闭 Web 容器
控制依赖
- 最简单办法是 不添加 Web 相关依赖
配置方式
- spring.main.web-application-type=none
关闭web应用程序的一个支持
编程方式
SpringApplication
• 设置 setWebApplicationType() 为noneSpringApplicationBuilder
• 设置 web() 为none在调用 SpringApplication 的 run() 方法前
设置 WebApplicationType 为none
常用工具类
不同的 Runner
功能一样 参数不一样
ApplicationRunner
• 参数是 ApplicationArgumentsCommandLineRunner
• 参数是 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>
如何编写命令行运行的程序相关推荐
- Windows命令行运行Java程序
如何在Windows命令行运行Java程序 准备工作 1.安装JDK 安装JDK(Java Development Kit Java开发工具包 又称SDK)Oracle公司JDK下载地址,直接下载,然 ...
- 设置PATH 环境变量、pyw格式、命令行运行python程序与多重剪贴板
pyw格式简介: 与py类似,我认为他们俩卫衣的不同就是前者运行时候不显示终端窗口,后者显示 命令行运行python程序: 在我学习python的过程中我通常使用IDLE来运行程序,这一步骤太过繁琐( ...
- linux命令行运行c程序,如何在Linux中编写和运行C程序
Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...
- java 程序命令_命令行运行JAVA程序
如果出现找不到变量,核查环境变量是否配置好 可以运行javac java java -version看是否正常 注意要在对应的目录下 核查java文件里边的名字 class文件名是否与java文件名一 ...
- java命令行运行 package_使用命令行运行Java程序
很久没有试过用Java命令行来运行程序了.今天用的时候都感觉有点不太顺利了.所以特别记下来,以免后边什么时候又忘掉. 首先是将编写好的Java程序放在某一文件夹下边.(本文以D盘javabasecod ...
- 命令行运行python程序
对于新入门的小白来说,学习python的第一步就是如何在命令行中运行python程序. 1. 配置环境变量(必须).请自行百度.否则,如下 2. python命令行只能运行程序代码(类似matlab) ...
- 如何在命令行运行java程序
1.先在命令行进入到保存java程序的文件夹下 进入方法: 1.按住win + R进入命令行 2.输入cmd,回车或点击确认 3.进入文件夹找到java文件所在地址 4.复制路径 5.命令行输入文件所 ...
- 如何用命令行运行python程序_如何使用运行python代码命令行.exe从C应用程序?
下面的例子运行命令运行TCL脚本(我已经安装在我的计算机上了),您只需要替换命令就可以运行Python并添加脚本文件. 注意脚本文件名后面的"&exit"命令-这会使cmd ...
- 用dos命令行执行java程序的方法
今天开始学java了,从图书馆借了一本Deitel公司的书,坑爹的是上面还是用命令行运行java程序,没有用任何ide,鉴于有些初学者可能需要这么运行,写一下方法.首先要安装jdk,然后记住安装路径. ...
最新文章
- 为什么程序员都不喜欢使用 switch ,而是大量的 if……else if ?
- c语言断链隐藏dll,通过断链隐藏模块(DLL)
- 全局容器的创建和使用---单件模式和IOC的容器的应用
- Python之NumPy(axis=0 与axis=1)区分
- 【HDU - 3002】King of Destruction(无向图全局最小割,SW算法,模板题)
- Jupyter Notebook的安装和使用
- 怎么修改php.in的时间,PHP时间和日期函数怎么操作
- ie代理配置错误_电缆厂组织结构图的7个常犯错误!
- perl CGI::Session
- java初学。加载图片
- 分享一个游戏源码、游戏服务端、下载网站
- 虚拟机ip映射到外网
- anki android 导入路径,3.1 导入卡片
- 20145322 何志威《网络对抗》shellcode注入Return-to-libc攻击深入
- meta分析 2. 固定效应和随机效应
- cocos2d-x : csb的加载
- JS 播放语音,将文本转成语音播放
- asterisk连接sip139网络电话
- dva学习-入门安装和目录介绍
- matlab查看俯视图,关于matlab:校准图像以获取位于同一平面上的点的俯视图
热门文章
- navicat 10.1.7的序列号
- STM32 USB虚拟串口调试总结(内部晶振、外部晶振配置、硬件电路说明、测试方法)
- 三种常用虚拟/沙盘软件-保护系统
- 解决openwrt页面升级中“不支持所上传的文件格式”问题
- 【操作系统学习笔记 ⑮ 完结篇】——文件管理 [ 文件系统 + 索引文件的详细样例 ]
- OPPO|后端工程师|一面 二面| 远程牛客面试 | 凉经 (2021/08/19 | 2021/09/01)
- 电子设计竞赛(5)-整流电路
- Win7系统插入USB鼠标自动禁用触摸板方法
- springboot项目系列-论坛系统06整合rabbitmq实现异步发邮件
- Mac上哪款邮件管理工具好用呢?试试这个