SpringApplicationBuilder教程

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(448)   2023-06-26 07:54:18

SpringApplicationBuilder 教程展示了如何使用 SpringApplicationBuilder 创建一个简单的 Spring Boot 应用程序。

春天 是用于创建企业应用程序的流行 Java 应用程序框架。 弹弓贴 是 Spring 框架的演变,它有助于以最小的努力创建独立的、生产级的基于 Spring 的应用程序。

Spring应用

Spring 应用 是一个从 Java main 方法引导 Spring 应用程序的类。它创建一个适当的 ApplicationContext 实例(取决于类路径),注册一个 CommandLinePropertySource 以将命令行参数公开为 Spring 属性,刷新应用程序上下文,加载所有单例 bean,并触发任何 CommandLineRunner bean。

SpringApplicationBuilder

SpringApplicationBuilderSpringApplicationApplicationContext 实例的构建器,具有方便的流畅 API 和上下文层次结构支持.

春季启动示例

以下应用程序是一个简单的 Spring Boot 控制台应用程序,它使用 SpringApplicationBuilder 来设置 Spring Boot 应用程序。

应用程序从用户那里获取一个参数;它需要一个网站的完整 URL 并返回其标题。

pom.xml
src
├── main
│   ├── java
│   │   └── com
│   │       └── zetcode
│   │           ├── Application.java
│   │           └── MyRunner.java
│   └── resources
└── 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>SpringBootApplicationBuilder</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.7</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.12.1</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.7</version>
            </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 应用程序。

com/zetcode/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,我们可以获得指定网站的标题。

com/zetcode/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 -Dspring-boot.run.arguments=--website=http://webcode.me
The title is: My html page

这是输出。命令行参数通过 spring-boot.run.arguments 传递。 -q(安静)是一个关闭 Maven 消息的 Maven 选项。

在本教程中,我们介绍了 SpringApplicationBuilder

地址:https://www.cundage.com/article/springboot-springapplicationbuilder.html

相关阅读

Spring Boot Vue.js 教程展示了如何使用 Vue.js 框架创建一个简单的 Spring Boot。 Vue.js Vue.js 是一个用于构建用户界面的 JavaScript ...
JavaScript 是否已经取代 Java 成为新的“一次编写,随处运行”的编程语言?这完全取决于您的观点。随着 WebAssembly 等技术的出现,Java 可以在新奇的“一次编写,随处编...
Usage of TypeScript,微软基于 JavaScript 的强类型语言, has soared compared to six years ago, according to th...
云莓将基于 Spring 构建的 Java 后端与使用 Lit 构建的 TypeScript 前端相结合,一个快速、响应式的 JavaScript 框架。基于 Vaadin Fusion 的 H...
本博客严重偏向于 GWT(和基于 GWT 的框架),但我们牢记 GWT 将来可能会被其他技术接管,因此我们始终对探索其他平台/框架持开放态度。正如他们所说,多元化可以降低风险。每种编程语言,即使...
Java JSON 教程展示了如何使用 JSON-Java 在 Java 中进行 JSON 序列化和反序列化。 JSON(JavaScript 对象显示法) 是一种轻量级数据交换格式。人类易于读...
JHipster 是一个长期存在且雄心勃勃的混合 Java 和 JavaScript 项目,致力于使用现代反应式前端简化全栈 Java 应用程序的开发。 JHipster 开发团队不断发布新版本...
解析器是强大的工具,使用 ANTLR 可以编写可用于多种不同语言的各种解析器。 在这个完整的教程中,我们将: 解释基础:什么是解析器,它可以用来做什么 查看如何设置 ANTLR 以便在 Java...
Spring Boot JSON 教程展示了如何在 Spring Boot 注释中提供 JSON 数据。 春天 是一个流行的 Java 应用程序框架,弹簧贴 是 Spring 的演变,有助于创建...
根据最近一项全球开发人员调查,在开发人员偏好方面,JavaScript 和 Python 保持了持久力,而 锈 的使用率正在上升. 5 月 4 日的一份题为“开发者国家情况,第 22nd 版”的...