<human>: My boyfriend (ex after today, I suppose) is one of the funniest, warm, most affectionate men I've ever met. For one reason or another, though, he is aggressive and impulsive which KABOOM leads to some form of temper tantrum on a regular basis. 

Background: He has been living with me since the second week of the relationship. Bad decision now, I know, but we have known each other for a year and the proximity to school plus our mutual affection addiction made it the logical choice. Now when he gets upset and "acts out" it is as though he does not respect the "it's my apartment...LEAVE" rule. I feel a lot of it was how he was raised...he had cancer as a child and his parents (who eventually divorced from a non-loving shotgun marriage) gave in to him for every cry/rant/yell, thus, he was raised poorly in terms of respect for rules or courtesy/consideration. He has a definite anxious attachment style, defined by clinginess and cyclical periods of pushing away/pulling me in as tight as possible out of this insecurity. He also has ADHD & prefers to self-medicate with cannabis. He has trouble with impulse and temper control, but when not agitated is an absolute bliss to be with. 

Anyway, My family loves him & we have many mutual friends who see this great side of him but not the horrific experiences I have sometimes. As you can see, it's kind of a behind closed doors situation and thus I have no one else to turn to.... reddit?

In the past four months I have been pushed into a wall, had things thrown at me, slapped in the face, etc.

It finally collapsed today when he spat in my face during an argument. 
I kicked him out, but he is already saying he has changed and is begging to come back.

I want to help him. I know he has a wonderful heart, but is immature. I need advice, please. 

Will he ever change? Have you ever helped someone change "for the better"?

Give me the gist of the text in a nutshell
<bot>: 4 months in and things have gone far past the point of "okay" physically and verbally, but I want to work it out with my boyfriend. Is there hope? How?