SpringApplicationBuilder 教程展示了如何使用 SpringApplicationBuilder 创建一个简单的 Spring Boot 应用。
Spring 是用于创建企业应用的流行 Java 应用框架。 Spring Boot 是 Spring 框架的演进,可帮助您轻松创建独立的,生产级的基于 Spring 的应用。
SpringApplication
SpringApplication
是一个类,用于从 Java main 方法引导 Spring 应用。 它创建一个适当的ApplicationContext
实例(取决于类路径),注册一个CommandLinePropertySource
以将命令行参数公开为 Spring 属性,刷新应用上下文,加载所有单例 bean,并触发任何CommandLineRunner
bean。
SpringApplicationBuilder
SpringApplicationBuilder
是SpringApplication
和ApplicationContext
实例的构建器,具有便利的流利的 API 和上下文层次结构支持。
Spring Boot 示例
以下应用是一个简单的 Spring Boot 控制台应用,它使用SpringApplicationBuilder
设置 Spring Boot 应用。
该应用从用户那里获取参数。 它需要网站的完整 URL 并返回其标题。
$ tree
.
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── zetcode
│ │ ├── Application.java
│ │ └── MyRunner.java
│ └── resources
│ └── application.properties
└── test
└── java
这是项目结构。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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.zetcode</groupId>
<artifactId>SpringBootAppEx</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Spring Boot 启动器是一组方便的依赖项描述符,可以极大地简化 Maven 配置。 spring-boot-starter-parent
具有 Spring Boot 应用的一些常用配置。 spring-boot-starter
是核心 Spring Starter。 jsoup
依赖关系用于 JSoup 库。
在spring-boot-maven-plugin
提供了 Maven 的春季启动支持,使我们能够打包可执行的 JAR 或 WAR 档案。 它的spring-boot:run
目标运行春季启动应用。
application.properties
logging.level.org.springframework=ERROR
在application.properties
文件中,我们编写了 Spring Boot 应用的各种配置设置。 在这里,我们将 Spring 框架的日志记录级别设置为 ERROR。
MyRunner.java
package com.zetcode;
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
public class MyRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
if (!args.containsOption("website")) {
System.err.println("no website specified");
} else {
List<String> vals = args.getOptionValues("website");
String url = vals.get(0);
Document doc = Jsoup.connect(url).get();
String title = doc.title();
System.out.printf("The title is: %s%n", title);
}
}
}
加载 Spring 应用后,将执行实现ApplicationRunner
的所有 bean。
if (!args.containsOption("website")) {
我们检查命令行上是否指定了--website
选项。
List<String> vals = args.getOptionValues("website");
String url = vals.get(0);
我们得到期权的价值。
Document doc = Jsoup.connect(url).get();
String title = doc.title();
System.out.printf("The title is: %s%n", title);
通过JSoup
,我们获得了指定网站的标题。
Application.java
package com.zetcode;
import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class)
.bannerMode(Banner.Mode.OFF)
.logStartupInfo(false)
.build()
.run(args);
}
}
Application
是设置 Spring Boot 应用的入口。 @SpringBootApplication
注解启用自动配置和组件扫描。
new SpringApplicationBuilder(Application.class)
.bannerMode(Banner.Mode.OFF)
.logStartupInfo(false)
.build()
.run(args);
SpringApplicationBuilder
用于构建 Spring 应用。 我们关闭标语和启动信息。
$ mvn -q spring-boot:run -Drun.arguments=--website=http://www.something.com
The title is: Something.
这是输出。 命令行参数与run.arguments
一起传递。
在本教程中,我们介绍了SpringApplicationBuilder
。