問題現象:
今日のSwaggerの学習過程で、問題が見つかりました。インターフェイス情報を表示できません。
仕様で定義されている操作はありません!
問題分析:
このメッセージの意味は次のとおりです。仕様で定義されている操作はありません(つまり、構成でインターフェースAPIが定義されていません)。
この問題には多くの理由があります。
1. swagger構成クラスで構成されたコントローラーのパッケージパスが間違っている(最も可能性が高い)
構成クラスのパッケージパスを調べたところ、問題がないことがわかりました。
2.コントローラーレイヤーのSwaggerアノテーション構成が正しくありません
コントローラ層の構成に問題がないことがわかります。
3.スタートアップクラスのアノテーション設定に問題があります
スタートアップクラスについて疑わしいのは、次の構成だけです。
@ComponentScan( "com.stephen.shoporder.config")
それで私はそれを削除して再訪し、それが大丈夫であることがわかりました:
@EnableFeignClients//启动Fegin支持
@EnableDiscoveryClient//启动DiscoveryClient支持(用于服务注册和发现,可获取到注册中心的所有服务)
@EntityScan(basePackages = {"com.stephen.shopcommon"})
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
このアノテーションのために、パッケージパスが指定されていることがわかります。これにより、プロジェクトはコントローラーパッケージパスを無視し、APIが失われます。
解決:
@EnableFeignClients//启动Fegin支持
@EnableDiscoveryClient//启动DiscoveryClient支持(用于服务注册和发现,可获取到注册中心的所有服务)
@EntityScan(basePackages = {"com.stephen.shopcommon"})
@ComponentScan("com.stephen.shoporder.config")
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}
コメント@ComponentScan( "com.stephen.shoporder.config")を 削除し ます。
@EnableFeignClients//启动Fegin支持
@EnableDiscoveryClient//启动DiscoveryClient支持(用于服务注册和发现,可获取到注册中心的所有服务)
@EntityScan(basePackages = {"com.stephen.shopcommon"})
@SpringBootApplication
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}