博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于 Spring Boot 编写控制台程序
阅读量:6912 次
发布时间:2019-06-27

本文共 2019 字,大约阅读时间需要 6 分钟。

hot3.png

诚然,当然世界上大部分 Spring Boot 程序是 Web 程序。将视线离开 Web 并放大到整个程序世界,则必将看到控制台程序是更基础也更广泛的一类程序。

用 Java 编写的控制台程序也可以享受 Spring Boot 带来的好处。

以 Spring Boot 为基础开发控制台程序,需要先引入一个 starter

Maven

org.springframework.boot
spring-boot-starter

Gradle

implementation('org.springframework.boot:spring-boot-starter')

当然,如果项目所使用的 starter 已经包含了 spring-boot-starter(例如:spring-boot-starter-data-mongodb),则不需要专门引入 spring-boot-starter。

再实现一个接口

@FunctionalInterfacepublic interface CommandLineRunner {    void run(String... args) throws Exception;}

例如:

class DartApplication implements CommandLineRunner {    @Override    public void run(String... args) {        System.out.println("程序实际上的入口在这里。");    }}

将这个类加上 @SpringBootApplication 注解,然后编写一个带主函数的类就可以了。

@SpringBootApplicationclass DartApplication implements CommandLineRunner {    @Override    public void run(String... args) {        System.out.println("程序实际上的入口在这里。");    }}public class App {    public static void main(String[] args) {        SpringApplication.run(DartApplication.class, args);    }}

当然,把主函数放进 DartApplication 里面也可以

@SpringBootApplicationpublic class DartApplication implements CommandLineRunner {    public static void main(String[] args) {        SpringApplication.run(DartApplication.class, args);    }        @Override    public void run(String... args) {        System.out.println("程序实际上的入口在这里。");    }}

Spring 提供的注解,Spring Boot 提供的方便的 starter,在这里仍然能用。

例如自动装配:

@Componentclass Diablo {    void firenova() {        System.out.println("释放烈火新星");    }}@SpringBootApplicationpublic class DartApplication implements CommandLineRunner {    public static void main(String[] args) {        SpringApplication.run(DartApplication.class, args);    }    @Autowired    public DartApplication(Diablo diablo) {        this.diablo = diablo;    }    private final Diablo diablo;    @Override    public void run(String... args) {        this.diablo.firenova();    }}

总之,基于 Spring Boot 开发控制台程序,就是实现个接口,其他照旧即可。

转载于:https://my.oschina.net/jthmath/blog/3022254

你可能感兴趣的文章
【职业心得】售前工程师的成长
查看>>
java基础(四章)
查看>>
脚本安装dns和postfix
查看>>
xp系统安装后变成一个盘了别的盘的文件怎么找到
查看>>
thinkphp的mvc理解
查看>>
继承、抽象类
查看>>
yum搭建本地仓库、更换国内源、下载rpm包
查看>>
mysql多种安装方法
查看>>
记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
查看>>
LoadRunner安装时提示.Net Framework 3.5 SP1问题
查看>>
电子器件的PCB封装图设计
查看>>
spark调优之开发调优
查看>>
vim的一些常用命令
查看>>
导购员不会告诉你的无线智能家居误区
查看>>
如何进入现在较火热的大数据领域,学习路线是什么?
查看>>
UI设计师需要掌握哪些知识点?
查看>>
Oracle客户端简易配置
查看>>
Oracle归档日志(一)
查看>>
ogg中Time Since Chkpt显示unknown解决方法
查看>>
从零开始免费为您的QQ邮件加把锁
查看>>