// this class will identify the classes that should be scanned without loading them
ByteCodeFilter byteCodeFilter = new ByteCodeFilter(annotationType);
// users can configure the annotation scanner to scan only specific packages
PackageFilter packageFilter = new PackageFilter(packageFilters);
// ClassVisitor will process all classes that ByteCodeFilter considers as worth scanning them
ClassVisitorImpl classVisitor = new ClassVisitorImpl(annotationHandlers, servletContext);
// fallback to some other classloder if there is no context class loader