Mit @Profil in den Frühling starten
Ich habe spring-boot-Anwendung (1.1.5.RELEASE) und was meiner profile, die über die Konfiguration protperty spring.profiles.active=MyProfile
Das Profil aktiviert wird richtig was ich sehen kann von Bohnen aus, dass Profil erstellt.
Dann habe ich ein @Controller
wie folgt verwendet:
@Controller
@RequestMapping("/someUrl")
@Profile("MyProfile")
public class MyController {
...
}
Dieser controller ist nicht instanziiert und die URL in den controller nicht zugeordnet werden. In das gleiche Paket habe ich einen anderen Controller, die sind nicht begrenzt durch @Profile
und diese bekommen instsantiated und kartiert als erwartet.
So ist mit @Profile
Anmerkung am controller etwas, was nicht kompatibel mit spring boot? Gibt es andere Ansatz, den ich nutzen sollte?
Edit: Es scheint ein Fehler zu sein, nachdem alle, als wenn ich auch -Dspring.profiles.active=MyProfile
als JVM-Eigenschaft der controller instanziiert :'(
Edit2: So, hier kommt der interessante Teil:
-
Wenn Sie definieren
spring.profiles.active
imapplication.properties
geladen wird, ist standardmäßig aus classpath thne es funktioniert -
wenn Sie benennen Sie die Datei
test.properties
und über@PropertySource("classpath:test.properties")
es nicht mehr funktioniert. Erhöhen wird ein Fehler gegen ihn.
Edit 3: Wie versprochen: https://github.com/spring-projects/spring-boot/issues/1417
Dank!
- Für mich lief es einwandfrei auch mit der properties-Datei!
- Um Doppelarbeit zu vermeiden wäre es höflich, um zu erwähnen, dass Sie haben ein Thema eröffnet für diese: github.com/spring-projects/spring-boot/issues/1417
- Danke, goog Punkt. Fügte hinzu, dass.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich herausgefunden was glaube ich ein Fehler zu sein im Frühjahr. Sehen SPR-12111 für mehr details.
Können Sie auf jeden Fall kommentieren controller mit @Profil in Spring Boot, gerade wie Sie tun, über. MyController instanziiert, wenn MyProfile aktiv ist. Sind Sie sicher, dass "MyProfile" ist das aktive Profil? Sind Sie auf der Einstellung der Feder.profile-Eigenschaft?
http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Profile.html
Die @Profile-annotation verwendet werden können in jedem der folgenden Möglichkeiten:
als Typ-level-annotation für jede Klasse direkt oder indirekt kommentiert mit @Component, einschließlich der @Configuration-Klassen
wie eine meta-annotation, die für den Zweck der Komposition benutzerdefinierte stereotype Anmerkungen
spring.profiles.active
?application.properties
und verwenden@PropertySource("newName.properties")
auf top-Niveau@Configuration
- Datei?