小编Old*_*eer的帖子

如何在应用程序 url /swagger 中显示静态 swagger yaml 文件

我创建了 yaml 文件(openapi 3.0.0 格式)作为我们 API 的文档。我想在应用程序运行的 URL 上显示这个(静态)swagger-ui yaml 文件。类似http://localhost:8080/swagger-ui 的东西。yaml 文件的图形表示在哪里显示(与此处相同)。Yaml 文件放置在项目的根文件夹中。

我在 java 11, springboot 2.1.5 上运行应用程序,使用 maven 构建。

我尝试使用代码从代码中生成 swagger yaml

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但这并不完美(缺少默认值、描述..)

我试过 spring 静态资源但没有成功。问题是 yaml 文件不是 html。

还有另一种(也许更好)的方式,如何显示 api 文档?

java swagger-ui spring-boot

5
推荐指数
1
解决办法
2822
查看次数

原因:元素未绑定

如何从 java springboot 应用程序中的配置 yml 文件加载对象列表?

我已经尝试了几个来源:

配置属性在弹簧引导

spring-boot-configurationproperties-example

SpringBoot 2 元素未绑定

堆栈:Java 11、SpringBoot 2.1.4、Lombok、.yml 格式的配置文件。

我尝试实现简单的@Component,它将从配置文件加载数据。

配置值为:

allowed:
  - first-crossroad: ONE
    second-crossroad: TWO
    third-crossroad: TWO
    fourth-crossroad: THREE
  - first-crossroad: ONE
    second-crossroad: THREE
    third-crossroad: TWO
    fourth-crossroad: ONE
Run Code Online (Sandbox Code Playgroud)

用于数据加载的 Java 类是:

allowed:
  - first-crossroad: ONE
    second-crossroad: TWO
    third-crossroad: TWO
    fourth-crossroad: THREE
  - first-crossroad: ONE
    second-crossroad: THREE
    third-crossroad: TWO
    fourth-crossroad: ONE
Run Code Online (Sandbox Code Playgroud)

Java CrossroadCombination 对象定义:

@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "")
@Data
public class AllowedCrossroads {

  private List<CrossroadCombination> allowed;
}

Run Code Online (Sandbox Code Playgroud)

我希望在应用程序运行期间加载值。但我收到错误:

Property: allowed[0].first-crossroad
    Value: …
Run Code Online (Sandbox Code Playgroud)

java configuration spring-boot

1
推荐指数
2
解决办法
1万
查看次数

Spock测试与junit 5测试一起无法运行

我的堆栈:

  • 想法2019.1.3
  • Springboot 2.1.6
  • Java 11
  • Maven的3.8.0
  • Groovy 2.5
  • Spock 1.3
  • 朱尼木星5.5.1
  • Junit Vintage 5.5.1
  • GMavenPlus插件2.7.1

我们想开始在Spock测试框架中编写测试。我遵循了此方法,但是没有成功。当我尝试运行所有测试时,我的Spock测试未运行。

我能够进行一项测试。我可以在测试上“右键单击”并运行它。但是,如果我尝试运行整个groovy软件包(或Java软件包下的某些软件包),它将不会运行那些groovy测试。它不会运行意味着出现以下错误:

Jul 24, 2019 8:33:47 AM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/platform/engine/support/discovery/SelectorResolver
    at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:69)
    at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:168)
    at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:155)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:69)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 8 more

Jul 24, 2019 8:33:47 AM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed …
Run Code Online (Sandbox Code Playgroud)

java groovy spock spring-boot

1
推荐指数
1
解决办法
599
查看次数

标签 统计

java ×3

spring-boot ×3

configuration ×1

groovy ×1

spock ×1

swagger-ui ×1