There are three options for loading batch artifacts via JSR-352. An implementation specific way if desired (would be Spring DI in our case), an artifact loader that looks for a batch.xml file located in /META-INF/ of the artifact or (if the others do not return the required artifact) a thread context classloader. Section 10.5 of JSR-352 defines the thread context classloader requirement as such:
3. Thread Context Class Loader
If the archive loader fails to resolve a batch artifact reference (returns null), then the batch runtime implementation must resolve the reference by treating the reference as a class name and loading it through the thread context class loader. The loader must return an instance or null.
This will probably require a component implementing BeanClassLoaderAware to add the bean to the current context.
TCK test com.ibm.jbatch.tck.tests.jslxml.ExecutionTests#testInvokeJobUsingTCCL validates this functionality.