在Spring Boot中,要创建一个非Web应用程序,实现CommandLineRunner
并覆盖run()
方法,例如:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
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 } }
1. 项目依赖
只有依赖 spring-boot-starter
库,参考如下 pom.xml
-
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46<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>
2. Spring
返回消息的服务,如下 HelloMessageService.java 代码所示 -
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 如下所示 -
复制代码
1
2
3
4
5
6
7name=yiibai
下面是CommandLineRunner
示例,如果运行这个Spring Boot,那么run
方法将是入口点。
SpringBootConsoleApplication.java 代码内容如下所示 -
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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); } }
3. 实例运行演示
打包上面的项目并运行它,如下命令 -
复制代码
1
2
3
4
5
6
7## 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
最后
以上就是热情便当最近收集整理的关于Spring Boot 非web应用程序实例的全部内容,更多相关Spring内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复