多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# `SpringApplicationBuilder`教程 > 原文: [http://zetcode.com/springboot/springapplicationbuilder/](http://zetcode.com/springboot/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 并返回其标题。 ```java $ tree . ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── zetcode │ │ ├── Application.java │ │ └── MyRunner.java │ └── resources │ └── application.properties └── test └── java ``` 这是项目结构。 `pom.xml` ```java <?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` ```java logging.level.org.springframework=ERROR ``` 在`application.properties`文件中,我们编写了 Spring Boot 应用的各种配置设置。 在这里,我们将 Spring 框架的日志记录级别设置为`ERROR`。 `MyRunner.java` ```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。 ```java if (!args.containsOption("website")) { ``` 我们检查命令行上是否指定了`--website`选项。 ```java List<String> vals = args.getOptionValues("website"); String url = vals.get(0); ``` 我们得到可选的值。 ```java Document doc = Jsoup.connect(url).get(); String title = doc.title(); System.out.printf("The title is: %s%n", title); ``` 通过`JSoup`,我们获得了指定网站的标题。 `Application.java` ```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`注解启用自动配置和组件扫描。 ```java new SpringApplicationBuilder(Application.class) .bannerMode(Banner.Mode.OFF) .logStartupInfo(false) .build() .run(args); ``` `SpringApplicationBuilder`用于构建 Spring 应用。 我们关闭横幅和启动信息。 ```java $ mvn -q spring-boot:run -Drun.arguments=--website=http://www.something.com The title is: Something. ``` 这是输出。 命令行参数与`run.arguments`一起传递。 在本教程中,我们介绍了`SpringApplicationBuilder`。 您可能对 [JSoup 教程](/java/jsoup/), [Spring Boot `Environment`教程](/articles/springbootenvironment/)感兴趣。 [Spring Boot PostgreSQL 教程](/springboot/postgresql/), [Spring Boot MySQL 教程](/springboot/mysql/)或 [Spring Boot `@PostConstruct`](/springboot/postconstruct/) 。