Использование @Profile в spring boot

у меня есть приложение spring boot (1.1.5.Отпустите) и включение моих профилей через конфигурацию protperty spring.profiles.active=MyProfile

профиль активируется правильно, что я вижу по бобам из этого создаваемого профиля.

потом @Controller используется следующим образом:

@Controller
@RequestMapping("/someUrl")
@Profile("MyProfile")
public class MyController {
...
}

этот контроллер не создается, и URL, используемый в контроллере, не сопоставляется. В том же пакете у меня есть другие контроллеры, которые не ограничены by @Profile и они получают instsantiated и отображаются, как ожидалось.

так, используя @Profile аннотация на контроллере что-то, что не совместимо с spring boot? Есть ли другой подход, который я должен использовать?

Edit: кажется, это ошибка в конце концов, как будто я включаю -Dspring.profiles.active=MyProfile как свойство JVM контроллер получает экземпляр :' (

Edit2: Итак, вот что интересно часть:

  • если вы определите spring.profiles.active на application.properties который загружается по умолчанию из classpath thne он работает

  • при переименовании файла test.properties и включить его через @PropertySource("classpath:test.properties") он перестает работать. Поднимет жука против него.

Edit 3: как и было обещано:https://github.com/spring-projects/spring-boot/issues/1417

спасибо!

2 ответов


я отследил это до того, что я считаю ошибкой весной. См.SPR-12111 для более подробной информации.


вы можете определенно аннотировать контроллер с @Profile в Spring Boot, как и выше. Mycontroller получает экземпляр, если myprofile активен. Вы уверены, что" MyProfile " является активным профилем? Вы устанавливаете пружину.свойства профилей?

http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/context/annotation/Profile.html Аннотация @Profile может использоваться любым из следующих способов:

Как a аннотации уровня типа для любого класса, прямо или косвенно аннотированного с помощью @Component, включая классы @Configuration в качестве мета-аннотации, с целью составления пользовательских аннотаций стереотипа