Size: a a a

2021 March 01

T

Tim Ami in pro.jvm
Всем привет! Подскажите как в @Profile исключить два профиля? @Profile("!dev") - работает, а
@Profile({"!dev","!test"}) - нет.
источник

A

Artjom Kalita in pro.jvm
Tim Ami
Всем привет! Подскажите как в @Profile исключить два профиля? @Profile("!dev") - работает, а
@Profile({"!dev","!test"}) - нет.
потому-что тут будет не дев ИЛИ не тест
источник

T

Tim Ami in pro.jvm
да так и должно быть, но в случае с двумя НЕ профилями - аннотация просто перестает работать
источник

A

Artjom Kalita in pro.jvm
нужно что-то похожее писать "!dev & !test"
источник

T

Tim Ami in pro.jvm
хм
источник

A

Artjom Kalita in pro.jvm
хмм так не работает если два профайла ?
источник

T

Tim Ami in pro.jvm
@Profile({"!dev","!test"}) - запускаю с профилем dev - бин создается
источник

A

Artjom Kalita in pro.jvm
а если дев и тест ?
источник

e

elendili in pro.jvm
Tim Ami
Всем привет! Подскажите как в @Profile исключить два профиля? @Profile("!dev") - работает, а
@Profile({"!dev","!test"}) - нет.
====
A profile expression allows for more complicated profile logic to be expressed, for example "p1 & p2". See Profiles.of(String...)

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Profile.html

=======
The following operators are supported in profile expressions.

! - A logical NOT of the profile or profile expression
& - A logical AND of the profiles or profile expressions
| - A logical OR of the profiles or profile expressions
Please note that the & and | operators may not be mixed without using parentheses. For example "a & b | c" is not a valid expression; it must be expressed as "(a & b) | c" or "a & (b | c)".

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/env/Profiles.html#of-java.lang.String...-
источник

DC

Denis Chikanov in pro.jvm
Tim Ami
@Profile({"!dev","!test"}) - запускаю с профилем dev - бин создается
Ну так сказали ж - условие "НЕ тест" выполнено, а раз оно через или, значит "включается"
источник

e

elendili in pro.jvm
Tim Ami
Всем привет! Подскажите как в @Profile исключить два профиля? @Profile("!dev") - работает, а
@Profile({"!dev","!test"}) - нет.
Пробуй как говорит спека:
@Profile(“!dev & !test”)
источник

A

Artjom Kalita in pro.jvm
я бы на самом деле лучше бы делал кондишенал включения бина через пропертю
источник

A

Artjom Kalita in pro.jvm
а не через профайлы плясать
источник

T

Tim Ami in pro.jvm
Спасибо в выражение - получилось, странная конечно логика...
источник

T

Tim Ami in pro.jvm
Artjom Kalita
а не через профайлы плясать
Это конфиги, мне показалось их удобнее через профили переключать @Profile("!dev & !test")
public class Config implements AppConfig{
источник

A

Artjom Kalita in pro.jvm
Был схожий экспириенс в проекте - потом все заебались с этим 5-6 разными профайлами и комбинациями их
источник

A

Artjom Kalita in pro.jvm
лучший вариант с конфигами это https://12factor.net/config имхо
источник

T

Tim Ami in pro.jvm
Спс, посмотрю.
источник

e

elendili in pro.jvm
Artjom Kalita
лучший вариант с конфигами это https://12factor.net/config имхо
То есть вынос всех конфигурационных ключей в переменные окружения? Выглядит неплохо, даже хорошо.
А как быть когда ключей сотни?
источник

A

Artjom Kalita in pro.jvm
elendili
То есть вынос всех конфигурационных ключей в переменные окружения? Выглядит неплохо, даже хорошо.
А как быть когда ключей сотни?
А что делать если проект такой огромный если такое необходимо... тут уж нужно думать о разбиение его на независимые сервисы подпроекты
источник