I need help with my two year old!

Okay my son has a problem where he likes to spit everywhere on everything and especially on people. I have no idea where he got that behavior from. He’s two btw. I’ve tried everything from trying to talk to him explaining it’s not nice, to time outs, and to spankings. And NOTHING works. He never takes me seriously he just laughs as it’s a joke. He also doesn’t listen and likes to hit people, scream in public ,and pour juice everywhere. I get so overwhelmed with him. Any advice on how to cope and discipline?