为啥在 Maven 中添加依赖项会触发功能?
Posted
技术标签:
【中文标题】为啥在 Maven 中添加依赖项会触发功能?【英文标题】:Why does the addition of a dependency in Maven trigger functionality?为什么在 Maven 中添加依赖项会触发功能? 【发布时间】:2020-07-01 19:22:06 【问题描述】:我有一个简单的问题:我刚刚开始使用 Open API 3。为此,我在 Maven 中添加了以下依赖项。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.2.30</version>
</dependency>
添加此依赖项后,我是否可以通过 localhost:8082/v3/api-docs 访问服务而无需事先设置任何内容并调用依赖项的函数?这怎么可能发生?这背后的概念是什么?
【问题讨论】:
【参考方案1】:在您的 Maven pom.xml 中添加 OpenAPI 依赖项只是将库添加到您的项目中。就是这样。
如果这是一个“传统”项目(例如 JSP Web 应用程序),您必须编写代码来创建 Web 服务(例如“localhost:8082/v3/api-docs”)。
但听起来你的项目可能是 Spring Boot:
https://developer.ibm.com/technologies/java/tutorials/j-spring-boot-basics-perry/
如果你允许它,Spring Boot 将使用它的 @EnableAutoConfiguration 注释以自动配置您的应用程序。 自动配置基于类路径中的 JARS 以及如何 你已经定义了你的 bean:
Spring Boot 使用您指定出现在 CLASSPATH 中的 JAR 来形成关于如何配置某些自动 行为。例如,如果您的文件中有 H2 数据库 JAR classpath 并且没有配置其他 DataSource bean,那么您的 应用程序将自动配置一个内存 数据库。
Spring Boot 使用您定义 bean 的方式来确定如何自动配置自身。例如,如果您注释您的 JPA 带有@Entity的bean,那么Spring Boot会自动配置JPA 这样您就不需要 persistence.xml 文件。
【讨论】:
是的,我正在使用 Spring Boot。谢谢你的回答。【参考方案2】:这被称为约定优于配置。 维基链接https://en.wikipedia.org/wiki/Convention_over_configuration
【讨论】:
以上是关于为啥在 Maven 中添加依赖项会触发功能?的主要内容,如果未能解决你的问题,请参考以下文章
添加 Firestore 依赖项会导致 Flutter 应用程序出错