I'm not sure where to do database lookups for Spring controllers.
It seems to make sense to use the Spring @Service
stereotype and create multiple "services" to provide lookup support to controllers rather than doing lookups directly in the controllers.
Is this correct or is there a more appropriate place to perform database lookups?
I don't think controllers should be doing database lookups. If you ditch your web tier, the lookup functionality goes away.
I'd put those behind a layer of repository interfaces. You can test them without the web tier that way. There could also be a separate service layer that owned units of work and transactions. Lookups should be read-only, so they might be safe enough to call directly from controllers.
That's the recommended Spring idiom.