[解決済み] YAMLを使ったSpring @PropertySource
2022-07-05 01:29:42
質問
Spring Bootを使うと
application.properties
ファイルを YAML の同等物に置き換えることができます。しかし、私はテストでつまづいたようです。もし私が私の
TestConfiguration
(シンプルなJavaコンフィグ)にアノテーションを付けると、プロパティファイルを期待しているようです。
例えばこれはうまくいきません。
@PropertySource(value = "classpath:application-test.yml")
もし私がこれを YAML ファイルに記述します。
db:
url: jdbc:oracle:thin:@pathToMyDb
username: someUser
password: fakePassword
で、その値を活用するとこんな感じ。
@Value("${db.username}") String username
しかし、結局このようにエラーになってしまいます。
Could not resolve placeholder 'db.username' in string value "${db.username}"
YAMLの良さをテストでも活用するにはどうしたらいいでしょうか?
どのように解決するのですか?
Spring-bootには、このためのヘルパーがあります。
@ContextConfiguration(initializers = ConfigFileApplicationContextInitializer.class)
をテストクラスの先頭か抽象テストのスーパークラスで指定します。
編集:私はこの答えを5年前に書きました。最近のSpring Bootのバージョンでは動作しません。これは、私が現在行っていることです(必要に応じてKotlinをJavaに翻訳してください)。
@TestPropertySource(locations=["classpath:application.yml"])
@ContextConfiguration(
initializers=[ConfigFileApplicationContextInitializer::class]
)
が一番上に追加され、次に
@Configuration
open class TestConfig {
@Bean
open fun propertiesResolver(): PropertySourcesPlaceholderConfigurer {
return PropertySourcesPlaceholderConfigurer()
}
}
をコンテキストに追加します。
関連
-
[解決済み】クライアントが送信したリクエストは構文的に正しくありません -Spring MVC + JDBC Template
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
[解決済み] Spring boot - マネージドタイプではありません。
-
[解決済み] postmanでサポートされていないメディアタイプ
-
[解決済み] java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
-
[解決済み] Spring Bootアプリケーションにポートを設定する方法
-
[解決済み】 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
-
[解決済み] Spring RestTemplateのタイムアウト
-
[解決済み] コンストラクタの引数を必要とする Bean を @Autowire する方法はありますか?
-
[解決済み] Spring MVC Test によるマルチパート POST リクエストの単体テスト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Springのpostメソッド "Required request body is missing"
-
[解決済み] ResourceBundleViewResolverでviews.propertiesが必要な理由
-
[解決済み] 例外を取得しました。springSecurityFilterChain'という名前のビーンが定義されていません。
-
互換性のない型.Found:'int',required:'java.lang.String'.
-
解決方法 原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException.NonTransientConnectionExceptionが原因です。
-
[解決済み】BeanFactoryとApplicationContextの比較
-
[解決済み】データソースの設定に失敗しました:'url'属性が指定されておらず、埋め込まれたデータソースが設定できませんでした。
-
[解決済み】SpringのGA、RC、M2リリースの違いは何ですか?
-
[解決済み] Spring Bootのデータベース関連の自動設定をすべて無効にする
-
[解決済み] コンテンツタイプ 'application/x-www-form-urlencoded;charset=UTF-8' は @RequestBody MultiValueMap ではサポートされていません。