Relationship advice

Jasmine

So me and my boyfriend have been together for 2 years and we’re both 17 and he’s honestly like my best friend and when we have good times they’re the best and I can laugh so hard and just basically do whatever I want and be myself and not feel judged. I’m so comfortable with him. But the problem is when something happens like when I wear tights without a sweater, he calls me a piece of shit and he says fuck you a lot to me and just goes off. Not to mention, this happens so often. I’m also not allowed to talk to any guys like at all or he’ll go off on me and basically if something doesn’t go his way he just says a bunch of fucked up shit. Should I just deal with it or break up with him oh and I forgot we talked about this and he said he’d change but he never does.