Spring Boot アプリを開発するために、Spring IDE プラグイン (3.8.1) で Eclipse Neon (4.6) を使用しています。Spring Boot ダッシュボードと Spring Boot 構成を使用して、Eclipse 内でのアプリの実行を管理します。Spring Boot ダッシュボードを介してアプリケーションを実行すると、すべてが正常に機能しています。
外部プロパティ ファイルをアプリケーションに追加し、@PropertySource(value = {"classpath:fee.properties" }) を使用して @Configuration クラスで参照しました。また、Spring Boot 構成を使用して、クラスパスに「外部フォルダー」の場所を追加しました。構成を開き、クラスパス タブに移動し、[詳細]、[外部フォルダーの追加] の順に押して、プロパティ ファイルのフォルダーの場所を追加します。
以前に Spring Boot ダッシュボードを介してアプリケーションを起動すると、org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter で ClassNotFoundException が報告されます
構成のクラスパスタブから外部フォルダーを削除すると、外部プロパティファイルが見つからないため、エラーが発生するまでアプリは正常に起動します。
アプリケーションを「Java アプリケーション」として実行する場合、Spring Boot アプリの「メイン」クラスである「Run As...Java Application」を右クリックすると、外部フォルダーが正常に起動します。
したがって、Springアクティビティが発生する前のメインプログラムの開始時に、クラスパスを表示するために次を追加しました
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){
System.out.println(url.getFile());
}
Spring Boot ダッシュボードから実行すると、いくつかの jar がクラスパスから欠落します。Java アプリとして実行する場合、または外部フォルダー エントリなしで実行する場合、すべての jar がクラスパスに存在します。
欠落している jar の例は次のとおりです...
/Users/orlok/.m2/repository/org/springframework/spring-context-support/4.2.3.RELEASE/spring-context-support-4.2.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot/1.3.3.RELEASE/spring-boot-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.3.3.RELEASE/spring-boot-starter-web-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter/1.3.3.RELEASE/spring-boot-starter-1.3.3.RELEASE.jar
/Users/orlok/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.3.3.RELEASE/spring-boot-starter-logging-1.3.3.RELEASE.jar
ClassNotFoundException で失敗する出力として「Spring_Boot_classpath.txt」を添付し、Java アプリとして実行され、すべての jar が存在する出力として「Java_app_classpath.txt」を添付しました。
外部フォルダーを別の方法で定義する必要がありますか、それともプラグインの問題ですか?