I do this on FastMail. All of my accounts are [site name]@[mydomain], so when I get spam on an address, I can easily set up a rule that sends all messages to that address to junk.
I also have other custom rules:
filter@[mydomain] goes to a special folder that isn't the inbox, for services whose messages I want to be able to access occasionally, but not most of the time.
spam@[mydomain] goes straight to spam.
I just went through my spam folder and found a bunch of spam (automatically filtered) to my "real" email address. That was surprising until I remembered that my email address is published on my website. I suppose my efforts were somewhat in vain.