Custom thread scope for defining Spring beans. A Runnable must be wrapped in a ThreadScopeRunnable if destruction callbacks should occur on a thread scoped bean.