File tree Expand file tree Collapse file tree
src/main/java/it/aboutbits/springboot/toolbox/reflection/util Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1111
1212 <groupId >it.aboutbits</groupId >
1313 <artifactId >spring-boot-toolbox</artifactId >
14- <version >2.4.1 </version >
14+ <version >2.4.2-RC1 </version >
1515 <description >Utility library for Spring Boot projects.</description >
1616 <packaging >jar</packaging >
1717
Original file line number Diff line number Diff line change 66import org .jspecify .annotations .NullMarked ;
77
88import java .lang .annotation .Annotation ;
9+ import java .util .Arrays ;
10+ import java .util .Map ;
911import java .util .Set ;
12+ import java .util .concurrent .ConcurrentHashMap ;
1013import java .util .stream .Collectors ;
1114
1215@ NullMarked
1316public final class ClassScannerUtil {
17+ private static final Map <String , ClassScanner > CACHE = new ConcurrentHashMap <>();
18+
1419 private ClassScannerUtil () {
1520 }
1621
1722 public static ClassScanner getScannerForPackages (String ... packages ) {
18- return new ClassScanner (packages );
23+ var cacheKey = Arrays .stream (packages )
24+ .sorted ()
25+ .collect (Collectors .joining ("|" ));
26+ return CACHE .computeIfAbsent (cacheKey , _ -> new ClassScanner (packages ));
1927 }
2028
21- public static final class ClassScanner implements AutoCloseable {
29+ public static final class ClassScanner {
2230 private final ScanResult scanResult ;
2331 private final String [] packages ;
2432
@@ -51,10 +59,5 @@ public Set<Class<?>> getClassesAnnotatedWith(Class<? extends Annotation> clazz)
5159 ClassInfo ::loadClass
5260 ).collect (Collectors .toSet ());
5361 }
54-
55- @ Override
56- public void close () {
57- scanResult .close ();
58- }
5962 }
6063}
You can’t perform that action at this time.
0 commit comments