The implementation should have the annotation. Not the interface. And the controller should depend on the interface, not on the implementation. That's what would allow Spring to inject an AOP proxy, allowing for transactions, security, etc:
public interface UserService {
...
}
@Service
public class UserServiceImpl implements UserService {
...
}
@Controller
public class UserController {
@Inject
private UserService userService;
...
}