SpringApplicationBuilder
教程
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 启动器。 jsoup
依赖关系用于 JSoup 库。
在spring-boot-maven-plugin
提供了 Maven 的 Spring Boot 支持,使我们能够打包可执行的 JAR 或 WAR 档案。 它的spring-boot:run
目标运行 Spring Boot 应用。
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
。
您可能对 JSoup 教程, Spring Boot Environment
教程感兴趣。 Spring Boot PostgreSQL 教程, Spring Boot MySQL 教程或 Spring Boot @PostConstruct
。