2017-05-02 14 views
2

私はJacksonと@RequestBodyアノテーションを使用するSpring MVCアプリケーションを持っています。Spring MVCは強制的にセッターを使用するようにします

私はPOJOにフィールドを持っていて、ジャクソンにマッピングさせたくないので、ロンボクはセッターのアクセスレベルをNONEに設定しました。

私のように構成することによってのみ使用セッターにSpringのObjectMapper Beanを強制しようとしてい
@NotNull 
@Setter(AccessLevel.NONE) 
private boolean enabled = false; 

:私はセッターとジャクソンは「アップマッピングしないでしょうフィールドの無visabilityなしでそれを引き受ける

@Bean 
@Primary 
public ObjectMapper getObjectMapper() { 
    ObjectMapper mapper = new ObjectMapper(); 
    mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.NONE); 
    return mapper; 
} 

有効になっているフィールドを... trueに設定したボディを送信すると、それをマップします

他に何が必要なのでしょうか?

おかげ

+0

フィールドがjsonから直列化解除されてシリアル化されないようにしたいですか?それとも、デシリアライズしただけですか? – Strelok

+0

@Strelok私はちょうどdeserialisedからそれを停止したい、私はまだそれはユーザーがそれを制御することを望んでいない応答で戻って行きたい。 – FMC

答えて

3

ただ@JsonPropertyでフィールドに注釈を付けると、読み取り専用にアクセスを設定します。

@JsonProperty(access = Access.READ_ONLY) 
private boolean enabled; 

PS。 @NotNullで注釈を付ける必要はありません。また、プリミティブ型を使用しているので、falseに初期化する必要はありません。

+0

これは完全に動作します - ありがとう – FMC

関連する問題