I know it's easier said than done but leave him. It's better in the long run. [But I get its hard when he's got a hold over you but I hope you find a way out]
No spell will permanently change someone, personal development is something only you [the person] can decide to do. A spell would be a bandage that would only work for a few days. You could talk to him and work towards changing for the better but it's more likely he won't try.
Regarding protection spells they will not fling a physical attacker away from you, protection spells protect against energy and while some can make a person uncomfortable or avoid your house, it won't stop an attack when said person is an abusive spouse.
Best case scenario you gather up however much money you have and take a bus as far away as possible then seek help from a woman's shelter, get settled there and build a better life. Protection spells can help you then. I know it sounds upsetting because you care for him, but what you have is not healthy and one of you needs to wake up and realize this. I hope he does and you can both build a safe and happy life but 5 years it's clear this is who he is. While you shouldn't accept being hurt [that isn't love and no one has that right] understand this is him, only he can change who he is, and it is very unlikely he will. Being in a relationship isn't the be all and end all so please look inside yourself and ask yourself if this is what you want for the rest of your life.