問題タブ [spring-boot-configuration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gson - GSON の null 値のデシリアライズが機能しない
json文字列を逆シリアル化しようとしています。さまざまな API を試しましたが、解決策が見つかりませんでした。ここでは、json の下でデシリアライズしようとしており、各フィールド/要素の値を読み取りたいと考えています。以下の例 -
map.containsKey("phone) と言うと false となります。これは "phone" 要素が json 文字列に存在しないことを意味します。しかし、この要素が入力 json に存在することがわかるので、これは正しくありません。 .
キーに値を与えることができるAPIについて、誰でも私を助けることができますか?
スプリング ブートでは、null 値を受け入れることができる正しいジャクソン デシリアライゼーション構成は何ですか? 現在、私は以下のように使用しています-
spring - spring.config.location の動作を古い Springboot バージョンに戻す理由が見つかりません
to/uses-spring.config.location=app.properties
プロパティを使用して構成場所を提供する展開環境があります。この投稿とこのgithub-brで述べたように、現在の springboot バージョン、つまり2.2.5.RELEASE
プロパティの動作が変更されていることに気づきませんでした。予想どおりspring.config.additional-location
、jar からもデフォルト値を選択するように使用する必要がありました。
ただし、問題は、同じスプリング ブート バージョンを持つ同じ環境内の別のアプリケーション、つまり 2.2.5.RELEASEspring.config.location
が古い方法で動作していることです。だから、例えば、他のアプリが持っていて、私たちのアプリが持っていない他の依存関係のために、それがどのように起こっているのかまだ疑問に思っていますか?
どのコードが原因で動作が古いバージョンに戻るのかわからないため、どのコード例を提供すればよいかわかりません。ただし、2 つのアプリの実装には次のような違いがあります。
- もう 1 つのアプリは @Value アノテーションを使用します。私たちのアプリは @ConfigurationProperties を使用してプロパティ値を読み込みます。使用してみましたが、構成の場所の動作は元に戻りませんでした。
- 彼らが使用したいくつかのクラスで
@PropertySource(value = "classpath:application.properties")
- 他のアプリは比較的古く、何らかの違いがある場合は、スプリングブートのバージョンをアップグレードしています。
これらは、私が今のところ見つけることができるいくつかの違いです. ただし、この動作の変化の原因がわからない場合は、助けてください。
spring - ネストされた構造の Spring Boot @ConfigurationProperties
私は以下のような構成を持っています
以下のクラスで上記の構成を読み取ろうとしています
ただし、このセットアップでエラーが発生します。
ネストされたオブジェクトを使用して、ネストされた構成を解析する方法を教えてください。
java - プロファイル固有のプロパティに依存する Spring Boot プロパティ
dev と prod の異なるサーバーに接続する必要がある Spring Boot アプリケーションがあり、それらのサーバーで多くのサービスが実行されています。ここまでで、次のような構成を作成しました。
アプリケーションのプロパティ:
アプリケーション-dev.properties:
アプリケーション prod.properties:
しかし、Bean 引数を で初期化すると@Value("${server.url.srv1}")
、「http://192.168.86.17/srv1」や「https://10.11.12.3/srv1」ではなく、「${server.url.base}/srv1」という文字列が返されます。 " 予想通り。
これはまったく実行可能ですか?「${}」参照は、すべての構成ファイルがロードされた後にのみ解決されるはずですが、そうではないようです。
Spring サイト、Google (それ以外の場合は便利なBaeldung サイトを参照)、および hereの両方で回答を検索しましたが、特定の質問に関連するものは何も見つかりませんでした。