Repository: quarkusio/quarkus
Issue: Degredation in Dev mode startup time for project using quarkus-spring-jpa extension

### Describe the bug

Time to first request has degraded for dev mode startup between 1.11.7.Final and 2.1.1.Final for projects that include a lot of extensions (i.e. many classes) that also include `quarkus-spring-data-jpa`

Start times reported by the console;

1.11.7.Final | 2.1.1.Final
-- | --
3.954s. | 5.804s.
3.923s. | 6.397s.
3.949s. | 6.408s.
4.054s. | 5.780s.
4.111s. | 5.980s.

This also impacts time to first response in dev mode. The issue is caused by an inefficient scan of Jandex indexed classes while searching for classes annotated with `org.springframework.data.repository.NoRepositoryBean`

Between 1.11.7.Final and 2.1.1.Final, this scan has become more costly and therefore start times have regressed.

[profiles-cpu.zip](https://github.com/quarkusio/quarkus/files/6963547/profiles-cpu.zip)


### Expected behavior

_No response_

### Actual behavior

Dev mode start time degrades are more classes are added to the classpath

### How to Reproduce?

**2.1.1.Final**

generate app by running the following command:

`mvn io.quarkus:quarkus-maven-plugin:2.1.1.Final:create -DprojectGroupId=my-groupId -DprojectArtifactId=app-generated-skeleton -DprojectVersion=1.0.0-SNAPSHOT -DpackageName=org.my.group -DplatformArtifactId=quarkus-bom -DplatformVersion=2.1.1.Final -Dextensions=agroal,config-yaml,core,hibernate-orm,hibernate-orm-panache,hibernate-validator,jackson,jaxb,jdbc-mysql,jdbc-postgresql,jsonb,jsonp,kafka-client,logging-json,narayana-jta,oidc,quarkus-quartz,reactive-pg-client,rest-client,rest-client-jaxb,resteasy,resteasy-jackson,resteasy-jaxb,resteasy-jsonb,scheduler,spring-boot-properties,smallrye-reactive-streams-operators,spring-data-jpa,spring-di,spring-security,spring-web,undertow,vertx,vertx-web,grpc,cache,micrometer,quarkus-openshift-client`

And then

`mvn clean quarkus:dev -Dquarkus.kafka.devservices.enabled=false -Dquarkus.keycloak.devservices.enabled=false`


**1.11.7.Final**

`mvn io.quarkus:quarkus-maven-plugin:1.11.7.Final:create -DprojectGroupId=my-groupId -DprojectArtifactId=app-generated-skeleton -DprojectVersion=1.0.0-SNAPSHOT -DpackageName=org.my.group -DplatformArtifactId=quarkus-bom -DplatformVersion=1.11.7.Final -Dextensions=agroal,config-yaml,core,hibernate-orm,hibernate-orm-panache,hibernate-validator,jackson,jaxb,jdbc-mysql,jdbc-postgresql,jsonb,jsonp,kafka-client,logging-json,narayana-jta,quarkus-quartz,reactive-pg-client,rest-client,rest-client-jaxb,resteasy,resteasy-jackson,resteasy-jaxb,resteasy-jsonb,scheduler,spring-boot-properties,smallrye-reactive-streams-operators,spring-data-jpa,spring-di,spring-security,spring-web,undertow,vertx,vertx-web,grpc,cache,micrometer,quarkus-openshift-client`

And then:

`mvn clean quarkus:dev -Dquarkus.log.console.json=false`



### Output of `uname -a` or `ver`

_No response_

### Output of `java -version`

_No response_

### GraalVM version (if different from Java)

_No response_

### Quarkus version or git rev

_No response_

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)

_No response_

### Additional information

_No response_

Changed files:
extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java

diff --git a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java
index a41cfc8bfda..7ccfbb56485 100644
--- a/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java
+++ b/extensions/spring-data-jpa/deployment/src/main/java/io/quarkus/spring/data/deployment/SpringDataJPAProcessor.java
@@ -10,11 +10,13 @@
 import java.util.List;
 import java.util.Set;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.jandex.AnnotationInstance;
 import org.jboss.jandex.AnnotationTarget;
+import org.jboss.jandex.AnnotationTarget.Kind;
 import org.jboss.jandex.ClassInfo;
 import org.jboss.jandex.DotName;
 import org.jboss.jandex.IndexView;
@@ -232,20 +234,11 @@ private List<ClassInfo> getAllInterfacesExtending(Collection<DotName> targets, I
     }
 
     private Collection<DotName> getAllNoRepositoryBeanInterfaces(IndexView index) {
-        Set<DotName> result = new HashSet<>();
-        Collection<ClassInfo> knownClasses = index.getKnownClasses();
-        for (ClassInfo clazz : knownClasses) {
-            if (!Modifier.isInterface(clazz.flags())) {
-                continue;
-            }
-            boolean found = false;
-            for (ClassInfo classInfo : knownClasses) {
-                if (classInfo.classAnnotation(DotNames.SPRING_DATA_NO_REPOSITORY_BEAN) != null) {
-                    result.add(classInfo.name());
-                }
-            }
-        }
-        return result;
+        return index.getAnnotations(DotNames.SPRING_DATA_NO_REPOSITORY_BEAN).stream()
+                .filter(ai -> ai.target().kind() == Kind.CLASS)
+                .filter(ai -> Modifier.isInterface(ai.target().asClass().flags()))
+                .map(ai -> ai.target().asClass().name())
+                .collect(Collectors.toSet());
     }
 
     // generate a concrete class that will be used by Arc to resolve injection points