His explanation that he’s said it too quickly before and ended up getting hurt is ridiculous.
I think you need to decide how much longer you’re willing to wait, and I’d actually take it up with him. You did nothing to deserve him withholding love- and him saying it before is not what caused him pain. He is causing you to reconsider the seriousness of your relationship, which you should. He sounds incredibly immature.