He's working his way up to punching you.
He's got away with the pushing and shoving, the verbal abuse, and now spitting.
He's telling himself it's all your fault, and he'll be telling himself it's your fault when he hits you too.
Violence aside, spitting is a sign that he holds you in absolute contempt. Why would you stay with someone who feels that way about you? Sorry OP, I'm sure this is hard to hear.