Whilst I do agree with this to a point, equal blame has to go on to us as the public. People want defence spending increased but they don't want to pay for it out of their pocket through higher taxes, or want to accept cuts to other services to fund it. Politicians don't want to lose votes so they end up compromising their intended policy to keep the status quo.
People who are wealthier don't want to shoulder the tax burden so they tell people that are poorer that it is immigrants who are taking up all the services and benefits and that is why we have less public money.
I have said it before, Labour is a party based on socialist principles and should act as such. Increase public spending, increase defence spending, make the wealthiest pay for it. The wealthy will always make the argument that why should they? They should do so simply because the vast majority have either made their money through the labour of others, or through inherited wealth, which will nearly always again have been made through the labour of others.