The batchContext is referenced within the Runnable to obtain the Job bean.  It's now pulled out of the context at the last minute before it's execution so that initialization of the job level dependencies (aka all of the @Inject stuff at the job level) is done on the same thread as it executes on.