Spring文档指出,如果我们使用Java 8 --parameters标志编译项目,我们可以跳过在注释中给出参数名称,例如@PathVariable。这意味着,我们只需使用@PathVariable id
而不是@PathVariable(“id”)id
。
在Spring Boot Maven应用程序中,我想知道如何告诉编译器使用parameters标志。它是否默认开启?我们需要在pom.xml中提供什么吗?
Spring文档指出,如果我们使用Java 8 --parameters标志编译项目,我们可以跳过在注释中给出参数名称,例如@PathVariable。这意味着,我们只需使用@PathVariable id
而不是@PathVariable(“id”)id
。
在Spring Boot Maven应用程序中,我想知道如何告诉编译器使用parameters标志。它是否默认开启?我们需要在pom.xml中提供什么吗?
--parameters
标志。请参见yuranos87的答案。<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
我不记得在我的任何项目中需要显式执行此操作。也许您只需要添加spring-boot-starter-parent(我知道,有时可能不是一个选择)。否则,Spring 已经为您处理好了一切。
Spring Boot 文档中多次提到它。例如,在 这里:
为了使输入能够映射到操作方法的参数上,实现端点的代码应使用 -parameters 进行编译。如果您正在使用 Spring Boot 的 Gradle 插件或者使用 Maven 和 spring-boot-starter-parent,则会自动进行编译。
更新
Spring Boot 实现它的方式非常简单(在 spring-boot-parent 和 spring-boot-starter-parent 的 poms 中):这里。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<parameters>true</parameters>
</configuration>
</plugin>