java spring源码_剑指Java自研框架,决胜Spring源码

无论是Spring框架源码的学习,还是框架设计,入门门槛都太高,理解起来晦涩。课程想抓住这两个痛点,在自研框架和Spring框架的穿插讲解中让大家逐渐熟悉Spring框架的脉络。通过从0搭建一个较为完备的web框架来提升自己的框架设计能力,同时能够管中窥豹,去了解Spring框架的设计思路,再辅以通俗易懂的Spring核心模块源码的讲解,将课程门槛拉低,让大家通过学习本门课程后能够通过自己学习读懂Spring乃至其他框架的源码。

适合人群

1.在校学生

2.已工作的Java程序员

技术储备要求

1.有Java语言基本使用经验

2.熟悉Spring的基本知识

public class ObjectIdConverter : JsonConverter

{

public override bool CanConvert(Type objectType)

{

return objectType == typeof(ObjectId);

}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)

{

if (reader.TokenType != JsonToken.String)

{

throw new Exception(

String.Format("Unexpected token parsing ObjectId. Expected String, got {0}.",

reader.TokenType));

}

var value = (string)reader.Value;

return String.IsNullOrEmpty(value) ? ObjectId.Empty : new ObjectId(value);

}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)

{

if (value is ObjectId)

{

var objectId = (ObjectId)value;

writer.WriteValue(objectId != ObjectId.Empty ? objectId.ToString() : String.Empty);

}

else

{

throw new Exception("Expected ObjectId value.");

}

}

}

在ObjectId字段上加一行代码即可

[JsonConverter(typeof(ObjectIdConverter))]

public string _id { get; set; }

假如运用Newtonsoft的JsonConvert的话,还需求额外加上参数

JsonConvert.DeserializeObject(json,new ObjectIdConverter());

3、经过Ignore,一种很有技巧性的写法

[JsonIgnore]

public override ObjectId _Id { get; set; }

[BsonIgnore]

public string _IdStr

{

get

{

return Id.ToString();

}

set

{

ObjectId id;

ObjectId.TryParse(value, out id);

Id = id;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值