Let $H$ be an abelian subalgebra, in a complex semisimple Lie algebra $L\subset {\rm gl}\ ({\bf C}^n)$, whose elements are semisimple.
Assume that $H$ is abelian Lie subalgebra.
Define $$H^\ast = \{ \alpha |\ \alpha : H\rightarrow {\bf C}\ is\ {\bf C}-linear\ \}$$
Then define $$ L_\alpha = \{ x\in L|\ [h,x]=\alpha(h)x \ \forall h\in H \ \} $$
Note that $$ H\subset L_0 $$
And we have $$ L = L_0\oplus \bigoplus L_\alpha $$
Question : $L \supseteq L_0\oplus \bigoplus L_\alpha$ is reasonable. But why these sets are equal ?
Since $H$ is abelian and consists of semisimple elements, the endomorphisms $ad(h) = [h,.]$ of $L$ are all semisimple (that is diagonlizable since you work on the complex numbers) and they all commute. Then it is a standard result that all the $ad(h)$ are diagonalizable in the same basis.
Fix some basis such that all $ad(h)$ are diagonal. Then if you look at the $i$-th eigenvalue, you show easily that it is a linear form, when considered as a function of $h$.
Finally you obtain your decomposition by assembling together the indices that give the same linear form (otherwise said, that give the same eigenvalue for all $ad(h)$).