|
Проектирование бинов
|
|||
---|---|---|---|
#18+
Как лучше создать бины? Есть конфиг пропертей, которые создается всегда, что требует заполнение NotNull полей Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Есть конфиг feign Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Текущее положение вынуждает меня постоянно описывать настройки в yaml Код: java 1. 2. 3. 4. 5. 6. 7.
Я хочу удалить все лишнее из application и чтоб два бина не создавалась, если настройки прокси не указаны ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 10:03 |
|
Проектирование бинов
|
|||
---|---|---|---|
#18+
-=Koba=-, у вас три куска кода и вопрос никак не связаны между собой, т.е. вы надеетесь что читатель как-то должен догадаться что вам нужно. Тем не менее @Value позволяет определить значения по-умолчанию (@Value({host:''})), чтобы не нужно было писать дичь в application.properties, но с ним есть проблема: там где нужно этот POJO создать руками, оно все равно проходит через bean postprocessor и наполняется значениями из конфига - чтобы этого не происходило нужно интерфейсы выделять. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 13:32 |
|
Проектирование бинов
|
|||
---|---|---|---|
#18+
Андрей Панфилов -=Koba=-, у вас три куска кода и вопрос никак не связаны между собой, т.е. вы надеетесь что читатель как-то должен догадаться что вам нужно. Тем не менее @Value позволяет определить значения по-умолчанию (@Value({host:''})), чтобы не нужно было писать дичь в application.properties, но с ним есть проблема: там где нужно этот POJO создать руками, оно все равно проходит через bean postprocessor и наполняется значениями из конфига - чтобы этого не происходило нужно интерфейсы выделять. FeignConfig туда инъектится FeignProxyProperty с настройками прокси, здесь и возникает у меня пробелма Если указать конфиг (с выключенным прокси) , то созадется FeignProxyProperty и нигде не используется Код: java 1. 2. 3. 4. 5. 6. 7.
А если не создавать конфиг feign.okhttp.proxy.enabled и добавить аннтоацию Код: java 1. 2.
Приложение не стартует Да можно сделать так, но думал есть более элегантное решение Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 15:15 |
|
Проектирование бинов
|
|||
---|---|---|---|
#18+
я так понял, что он хочет не указывать host/port в конфиге, если proxy.enabled = false, что в данный момент не работает из-за валидации на эти поля дальше чисто идеи, ибо тонкостей не помню и лень проверять Код: java 1. 2.
я бы здесь ожидал ошибки инъекции, т.к. FeignProxyProperty в FeignConfig не опциональная зависимость, а обязательная, как на счет перенести ее туда, где она нужна? Код: java 1. 2. 3. 4. 5.
еще можно свой валидатор вместо NotNull написать, который не будет бухтеть, если "feign.okhttp.proxy.enabled" = false - выглядит, возможно, как оверкилл в данном случае, если можно как-то с Conditional разрулить, но концептуально, вероятно, более правильно, ведь по сути так и есть - проперти не могут быть пустыми только если прокси активен иначе пофиг. Городить два варианта бинов только ради прокси тоже как-то не айс, имхо проще в коде разрулить ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2022, 15:30 |
|
Проектирование бинов
|
|||
---|---|---|---|
#18+
Нашел решение Код: java 1. 2. 3. 4. 5. 6.
Since Spring 4.3.0.RC1 you can do this: Код: java 1. 2. 3. 4.
As of Spring Framework 5.0, you can also use a @Nullable annotation (of any kind in any package — for example, javax.annotation.Nullable from JSR-305): https://stackoverflow.com/questions/42135102/how-to-set-autowired-constructor-params-as-required-false-individually ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2022, 12:19 |
|
|
start [/forum/topic.php?fid=59&tid=2120260]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 246ms |
total: | 379ms |
0 / 0 |