The following applies to components only, not services. @Inject is backed by InjectWorker which ultimately delegates to InjectionProvider2. InjectionProvider2 is a chain which can be contributed to. See TapestryModule.provideStandardInjectionProviders() for the defaults. Some of the notable options for @Inject are assets, blocks and services but you can provide your own.
@InjectComponent can only inject components by id (see InjectComponentWorker).