À l'aide de @Profil du printemps de démarrage
J'ai de printemps de l'application de démarrage (1.1.5.COMMUNIQUÉ de) et l'activation de mon profil via la configuration protperty spring.profiles.active=MyProfile
Le profil est activé correctement, je peux voir par les haricots de ce profil en cours de création.
Puis j'ai une @Controller
utilisés comme suit:
@Controller
@RequestMapping("/someUrl")
@Profile("MyProfile")
public class MyController {
...
}
Ce contrôleur n'est pas instancié et l'URL utilisée dans le contrôleur ne sont pas cartographiées. Dans le même paquet que j'ai un autre contrôleurs qui ne sont pas limités par @Profile
et ces instsantiated et cartographiés comme prévu.
Est donc à l'aide de @Profile
annotation sur le contrôleur de quelque chose qui n'est pas compatible avec spring boot? Est-il autre approche, je devrais utiliser?
Edit: Il semble être un bug après tout, comme si je comprend -Dspring.profiles.active=MyProfile
que la JVM des biens le contrôleur est instanciée :'(
Edit2: Donc, voici la partie intéressante:
- Si vous définissez
spring.profiles.active
dansapplication.properties
qui est chargé par défaut de classpath thne il fonctionne - lorsque vous renommez le fichier
test.properties
et de l'inclure via@PropertySource("classpath:test.properties")
il s'arrête de fonctionner. Soulever un rapport de bogue.
Edit 3: Comme promis: https://github.com/spring-projects/spring-boot/issues/1417
Merci!
Afin d'éviter la duplication des efforts, il serait courtois de mentionner que vous avez ouvert un problème pour ceci: github.com/spring-projects/spring-boot/issues/1417
Merci, goog point. Ajouté que.
OriginalL'auteur Jan Zyka | 2014-08-21
Vous devez vous connecter pour publier un commentaire.
J'ai suivi ce jusqu'à ce que je crois être un bug au Printemps. Voir SPR-12111 pour plus de détails.
OriginalL'auteur Andy Wilkinson
Vous pouvez certainement annoter un contrôleur avec @Profil du Printemps de Démarrage, comme vous le faites ci-dessus. MyController est instanciée si mon profil est actif. Êtes-vous sûr que "mon profil" est le profil actif? Vous mettez-vous au printemps.les profils de la propriété?
http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Profile.html
@Profil de l'annotation peut être utilisée dans l'une des manières suivantes:
comme au niveau du type d'annotation sur toute catégorie, directement ou indirectement, annotée avec @Composant, y compris @classes de Configuration
comme un méta-annotation, dans le but de composer personnalisé stéréotype annotations
spring.profiles.active
?J'ai été mise en application.propriétés, n'avait pas essayé avec un autre nom. Intéressant
S'il vous plaît si vous avez un de rechange minutes, pourriez-vous juste renommer
application.properties
et l'utilisation@PropertySource("newName.properties")
sur vous haut niveau@Configuration
fichier?J'ai fait ce que vous avez suggéré et il a cassé comme vous l'avez décrit. J'ai même remplacé la demande.les propriétés de fichier et l'ajout d'un printemps.config.nom=myotherproperties. Les autres propriétés de fichier définit le port du serveur, donc je savais que c'était d'être ramassé. Mais dès que je bouge le printemps.profils et au printemps.les profils.active dans les autres propriétés de fichier, il se ferme de travail.
OriginalL'auteur gyoder