在Spring Boot中,要创建一个非Web应用程序,实现CommandLineRunner
并覆盖run()
方法,例如:
import org.springframework.boot.CommandLineRunner;
@SpringBootApplication
public class SpringBootConsoleApplication implements CommandLineRunner {
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootConsoleApplication.class, args);
}
//access command line arguments
@Override
public void run(String... args) throws Exception {
//do something
}
}
只有依赖 spring-boot-starter
库,参考如下 pom.xml
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yiibai</groupId>
<artifactId>spring-boot-non-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-non-web</name>
<url>http://maven.apache.org</url>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<build>
<plugins>
<!-- Package as an executable jar/war -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
返回消息的服务,如下 HelloMessageService.java 代码所示 -
package com.yiibai.service;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class HelloMessageService {
@Value("${name:unknown}")
private String name;
public String getMessage() {
return getMessage(name);
}
public String getMessage(String name) {
return "Hello " + name;
}
}
属性文件配置文件: application.properties 如下所示 -
name=yiibai
下面是CommandLineRunner
示例,如果运行这个Spring Boot,那么run
方法将是入口点。
SpringBootConsoleApplication.java 代码内容如下所示 -
package com.yiibai;
import com.yiibai.service.HelloMessageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.Banner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import static java.lang.System.exit;
@SpringBootApplication
public class SpringBootConsoleApplication implements CommandLineRunner {
@Autowired
private HelloMessageService helloService;
public static void main(String[] args) throws Exception {
//disabled banner, don't want to see the spring logo
SpringApplication app = new SpringApplication(SpringBootConsoleApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
// Put your logic here.
@Override
public void run(String... args) throws Exception {
if (args.length > 0) {
System.out.println(helloService.getMessage(args[0].toString()));
} else {
System.out.println(helloService.getMessage());
}
exit(0);
}
}
打包上面的项目并运行它,如下命令 -
## Go to project directory
## package it
$ mvn package
$ java -jar target/spring-boot-non-web-0.0.1-SNAPSHOT.jar
Hello yiibai
$ java -jar target/spring-boot-non-web-0.0.1-SNAPSHOT.jar "Max su"
Hello Max su
介绍图像处理中的特征工程以及利用全局统计特征如直方图和梯度统计等进行分类的方法
系列文章目录上一节:04 cefsharp类谷歌浏览器多开页面的实现cefsharp专题目录页链接原创博文,转载请标注转载链接,谢谢!文章目录系列文章目录一、编译说明二、编译方法三、编译完后使用步骤1、前期准备2、使用步骤(1)重新生成项目(2)将编译准备好的libcef.dll复制替换debug中的文件(3)F5调试,或者直接点击.exe文件查看视频即可四、其他说明五、下节预告一、编译说明cefsharp不是不支持mp3,mp4播放,而是官方的情况下不会集成这方面的功能,可能是
物联网,顾名思义,所有的数据采集是从设备采集的。设备有多种,有些通过传感器来采集,有些设备属于智能设备,本身就是一台小型计算机,能够自己采集,不管是传感器,还是智能设备本身,采集方式一般包含2种,一种是报文方式,所谓报文就是根据你设置的采集频率,比如1分钟一次,1秒一次进行数据传输,传输到哪里?一般放到MQ中。还有一种采集是以文件的方式采集,在做数据分析的时候,工业设备的数据希望是连续不断的,我们
2019独角兽企业重金招聘Python工程师标准>>> ...
今天讲讲Android的广播,Android自定义广播分为有序广播和无序广播,我们今天讲无序广播和系统广播。自定义广播有发送者和接受者,发送者只要设置名字和传递数据,接受者接收,接收者接收需要注册,可以在清单文件中注册也可以用代码动态注册。 先贴发送:package com.zking.sun.android_14_sender;import android.content.Intent;imp
当你有很多类似的文件,文件名可以很规律却又有些不规律的时候...可以试试这个批处理。@echo offecho.&echo.title 批量替换文件名中的部分字符串&color 3fecho Note:echo 本批处理可批量替换本文件所在文件夹下的所有文件名的相同字符echo.&echo.&echo.&echo.&echo.&...
一、groupby 能做什么?python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!对于数据的分组和分组运算主要是指groupby函数的应用,具体函数的规则如下:df[](指输出数据的结果属性名称).groupby([df[属性],df[属性])(指分类的属性,数据的限定定语,可以有多个).mean()(对于数据的计算方式——函数名称)举例如下:print(df["评分"...
RabbitMQRabbitMQ 是开源的分布式消息队列系统,用 erlang 语言开发。RabbitMQ 是 AMQP 的标准实现。AMQP(Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件而设计。AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性。消息中间件主要...
前言继Spark性能调优基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是
RipZ · 2016/05/30 10:360x00 前言本文将以连载的形式分享splunk在实战中的运用:从索引器&amp;转发器的安装部署开始,到普通搜索&amp;字段提取,再到报表&amp;仪表盘定制以及告警等,详细的写出作者在实战中的经验(其实是遇到的坑),让大家看完之后可以少走些弯路。0x01 Splunk简述什么是Splunk?Splunk是机器数据的引擎。使用 Splunk 可收集...
一、fiddler抓包原理注意:Fiddler是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。二、安装打开官网,官网下载地址是https://...
一、单元测试了解三种代码:1、伪代码:类似于自然语言说明,描述实现逻辑思维2、产品代码:程序员编辑的开发代码,要求可修改、可移植3、测试代码:我理解是相当于开发软件在软件开放之前,程序员找到bug。比如一些边界情况的测试。二、TDD(测试驱动开发)1、概念:先列出测试表,编写测试用例,再写开发代码2、先考虑边界值,能够减少二次开发和调试bug的工作量三、面向对象三要素 1、封装...