微服务架构之Spring Boot(十四)

2022-04-07 19:56:04 浏览数 (1)

18.使用@SpringBootApplication Annotation

许多Spring Boot开发人员喜欢他们的应用程序使用自动配置,组件扫描,并能够在他们的“应用程序类”上定义额外的配置。单

个 @SpringBootApplication 注释可用于启用这三个功能,即:

@EnableAutoConfiguration :启用Spring Boot的自动配置机制

@ComponentScan :对应用程序所在的软件包启用 @Component 扫描(请参阅最佳实践)

@Configuration :允许在上下文中注册额外的beans或导入其他配置类

@SpringBootApplication 注释等效于使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 及其默认属性,如以下示

例所示:

package com.example.myapplication;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

@SpringBootApplication 还提供了别名来自定义 @EnableAutoConfiguration 和 @ComponentScan 的属性。

这些功能中的None是强制性的,您可以选择使用它启用的任何功能替换此单个注释。例如,您可能不希望在应用程序中使用组件

扫描:

package com.example.myapplication;

import org.springframework.boot.SpringApplication;

import org.springframework.context.annotation.ComponentScan

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.Import;

@Configuration

@EnableAutoConfiguration

@Import({ MyConfig.class, MyAnotherConfig.class })

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

在此示例中, Application 与任何其他Spring Boot应用程序一样,除了 @Component - 未自动检测带注释的类,并且显式导入用

户定义的beans(请参阅 @Import ) 。

19.运行您的应用程序

将应用程序打包为jar并使用嵌入式HTTP服务器的最大优势之一是,您可以像运行任何其他服务器一样运行应用程序。调试Spring Boot应用程序

也很容易。您不需要任何特殊的IDE插件或扩展。

本节仅介绍基于罐子的包装。如果您选择将应用程序打包为war文件,则应参阅服务器和IDE文档。

19.1从IDE运行

您可以从IDE运行Spring Boot应用程序作为简单的Java应用程序。但是,您首先需要导入项目。导入步骤因IDE和构建系统而异。大多数IDE可

以直接导入Maven项目。例如,Eclipse用户可以从 File 菜单中选择 Import… → Existing Maven Projects 。

如果无法将项目直接导入IDE,则可以使用构建插件生成IDE元数据。Maven包括Eclipse和 IDEA的插件 。Gradle提供各种IDE的插件 。

如果您不小心运行了两次Web应用程序,则会看到“端口已在使用中”错误。STS用户可以使用 Relaunch 按钮而不是 Run 按钮

来确保关闭任何现有实例。

19.2作为打包应用程序运行

如果您使用Spring Boot Maven或Gradle插件创建可执行jar,则可以使用 java -jar 运行应用程序,如以下示例所示:

$ java -jar target/myapplication-0.0.1-SNAPSHOT.jar

也可以运行启用了远程调试支持的打包应用程序。这样做可以将调试器附加到打包的应用程序,如以下示例所示:

$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n

-jar target/myapplication-0.0.1-SNAPSHOT.jar

19.3使用Maven插件

Spring Boot Maven插件包含 run 目标,可用于快速编译和运行您的应用程序。应用程序以分解形式运行,就像在IDE中一样。以下示例显示了

运行Spring Boot应用程序的典型Maven命令:

$ mvn spring-boot:run

您可能还想使用 MAVEN_OPTS 操作系统环境变量,如以下示例所示:

$ export MAVEN_OPTS=-Xmx1024m

0 人点赞