2016-08-06 6 views
0

を結合REST変数を消費私はこのチュートリアルの次のです:SpringBootは

{ 
    type: "success", 
    value: { 
     id: 10, 
     quote: "Really loving Spring Boot, makes stand alone Spring apps easy." 
    } 
} 

私は一つの質問を持っている:https://spring.io/guides/gs/consuming-rest/ このように、JSONオブジェクトを消費しています。 Value.javaでは、我々は二つの変数があります。

private Long id; 
    private String quote; 

を私の質問はどのように春がJSONのidプロパティに変数IDをバインドするために知っているとどのようにそれがJSONでの引用プロパティに引用変数をバインドするために知っているんです。私は両方のStringを考えてみましたが、おそらくSpringは変数のデータ型を自動的に決定し、バインディングを行いますが、違いはありません。変数名がプロパティと同じであれば、それはバインディングの仕方だと思ったので、変数名を変更しようとしましたが、違いはありませんでした。それはこのようになったので、私は、変数を切り替えるように、そして、私はそれは多分変数の順序で考えた:

private String quote; 
    private String id; 

私は彼らの目的の両方の文字列ました。しかし、何とかidプロパティが変数idにバインドされ、quoteプロパティが変数を引用するようになっていました。

誰かが、どの変数をどの変数にバインドするかをSpringがどのように決定するかといったように教えてもらえますか?

+0

最初はgetter/setterメソッドの名前、プロパティ名の順にする必要があります。名前を変更したにもかかわらず、それらのすべてでまだ価値がある場合は、おそらくすべてのプロジェクトを再構築しなかったでしょう。 –

+0

quote1とidをid1に変更して再度ビルドしてからjarファイルを実行しても同じ出力が得られました – StephCurry3093

答えて

1

デフォルトでは、対応するゲッター/セッターを使用しているため、フィールド名を変更してもゲッター/セッター名は変更しないようにしています。

+0

だから私は違いをもたらさなかったセッター名を変更しました。それから、私はゲッタを変更しました。それはnullを返しました。なぜなのかご存知ですか?なぜゲッター名を変更すると違いが出るのだろうか? – StephCurry3093

+0

私はジャクソンをあまり使っていないので、よく分かりません。あなたは、このライブラリのドキュメントか、多分この1つ(あなたの質問に答えるために良いenoghかどうか確信していない)をチェックアウトする必要があります:http://www.baeldung.com/jackson-field-serializable-deserializable-or-not(de)シリアル化はゲッター名に依存します(私があなたがジャクソンのデフォルトの動作を変更できることを知っている限り) – mklimasz