コンストラクタを使った場合
- コンストラクタにJsonCreatorアノテーションを設定する。
- 引数には、JsonPropertyアノテーションを設定し、Jsonのキー名を指定する。
public class Sample {
    public final String name;
    public final short age;
    @JsonCreator
    public Sample(
            @JsonProperty("name") final String name,
            @JsonProperty("age") final short age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "Sample{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
ファクトリメソッドを使った場合
ファクトリメソッドの場合には、コンストラクタに設定していたアノテーションをファクトリメソッドにそのまま持ってくれば良い。public class Sample {
    public final String name;
    public final short age;
    private Sample(final String name, final short age) {
        this.name = name;
        this.age = age;
    }
    @JsonCreator
    public static Sample create(
            @JsonProperty("name") final String name,
            @JsonProperty("age") final short age) {
        return new Sample(name, age);
    }
    @Override
    public String toString() {
        return "Sample{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
動作結果
動作確認に使ったコードfinal ObjectMapper objectMapper = new ObjectMapper();
final Sample sample = objectMapper.readValue("{\"name\": \"なまえ\", \"age\": 100}", Sample.class);
System.out.println("sample = " + sample);
標準出力の結果
sample = Sample{name='なまえ', age=100}