Exclure des sous-paquets à partir du Printemps permettra à l'autowiring?
Est-il un moyen simple pour exclure un paquet /sous-package à partir d'permettra à l'autowiring au Printemps 3.1?
E. g., si je voulais inclure une composante d'analyse avec un forfait de base de com.example
est-il un moyen simple d'exclure com.example.ignore
?
(Pourquoi? J'aimerais exclure certains composants de mes tests d'intégration)
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que vous pouvez exclure des paquets explicitement avec un <exclure-filter>, mais je parie que l'aide d'une expression régulière filtre efficacement, vous y:
À faire annotation de base, vous souhaitez annoter chaque classe que vous voulais exclu pour les tests d'intégration avec quelque chose comme @com.exemple.annotation.ExcludedFromITests. Ensuite, le composant d'analyse ressemblerait à:
Plus claire, parce que maintenant vous avez documenté dans le code source lui-même que la classe n'est pas destiné à être inclus dans un contexte d'application pour les tests d'intégration.
Je suis en utilisant
@ComponentScan
comme suit pour le même cas d'utilisation. C'est le même que BenSchro10 de l' XML de réponse, mais il utilise les annotations. Utiliser un filtre avectype=AspectJ
FilterType.REGEX
pour cette approcheFilterType.REGEX
. Peut-être que la réponse pourrait être mis à jour pour refléter ce?Pour Printemps 4 j'utilise la suite
(Je suis annonce comme la question est de 4 ans et au plus de gens utilisent Printemps 4 de Printemps 3.1):
Cela fonctionne au Printemps 3.0.5. Donc, je pense qu'il serait de travailler dans 3.1
Il semble que vous avez fait dans le format XML, mais si vous travaillez dans le nouveau Printemps des meilleures pratiques, la config serait en Java, et vous pouvez les exclure de la manière suivante:
Je pense que vous devriez refactoriser votre colis dans plus commode hiérarchie, de sorte qu'ils sont hors de la forfait de base.
Mais si vous ne pouvez pas faire cela, essayez de:
Ici vous pouvez trouver plus d'exemples: Utilisation de filtres pour personnaliser la numérisation
Une chose qui semble fonctionner pour moi, c'est ceci:
Ou en XML:
Il remplace le par défaut
resourcePattern
qui est"**/*.class"
.Semblent comme la plupart de type de moyen sûr de n'inclure votre forfait de base depuis que resourcePattern serait toujours la même, et par rapport à votre forfait de base.
Vous pouvez également utiliser @SpringBootApplication, qui, selon le Ressort de la documentation n'a la même fonctionnalité que les trois annotations:
@Configuration, @EnableAutoConfiguration @ComponentScan
dans une annotation.
Vous pouvez également inclure un package spécifique et exclut comme :
D'inclusion et d'exclusion (les deux)
JUSTE Exclure