|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
небольшое дополнение. если назначить нужные свойства напрямую в бинах классах конфигурации, как показано для БД postgres, то всё работает Код: java 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 18:23 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
я х.з. что у тебя там не так, специально потратил время на создание пустого проекта с двумя datasource. все нах работает как надо, ковыряй свою консерваторию или выкладывай исходники Код: json 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
показываю скриншоты дебага адын ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 21:44 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
два ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2021, 21:44 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha, я твой должник. но. 1. нужно добавить @Primary для @Bean public JdbcTemplate jdbcTemplate1() 2. используемый класс класс просит NamedParameterJdbcTemplate а не JdbcTemplate у меня код всё равно не работает. и причина в том, что DataSourceBuilder.create().build(); не отображает свойства @ConfigurationProperties(prefix = "app.datasource.pg") я посмотрел на stackoverflow.com, там народ использует JPA и всё работает. а я только JDBC DATA. может не хватает каких н.б. библиотек. спасибо тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 09:34 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha, мне нужно время, у тебя в project java-16, а у меня - 11. если причина в этом - ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 09:49 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha, твой проект работает, мой нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 11:01 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chron твой проект работает, мой нет. то бишь Код: java 1. 2. 3. 4. 5.
вместо Код: java 1. 2. 3. 4. 5.
chron 1. нужно добавить @Primary для @Bean public JdbcTemplate jdbcTemplate1() 2. используемый класс класс просит NamedParameterJdbcTemplate а не JdbcTemplate chron я посмотрел на stackoverflow.com, там народ использует JPA и всё работает. а я только JDBC DATA. может не хватает каких н.б. библиотек. chron chpasha, мне нужно время, у тебя в project java-16, а у меня - 11. если причина в этом - ура. скорее всего нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 11:10 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha а ты пробовал делать инъекцию, как у меня? не через параметр метода, а через вызов метода бина? Может с этим какой-то ньюанс? точно - в этом проблема. поменял в моем проекте и тоже инжектит один ds в оба метода (инжектит тот, что Primary). Либо меняй на инъекцию через вызов метода, либо ставь явно @Qualifier("dataSourceX") перед параметром - так тоже работает. Интересно, это баг или фича, что внутри конфигурации не инжектит по имени параметра - я бы сказал, что баг, но поскольку рекомендованный метод инъекции через явный вызов метода внутри одного конфига, то может и фича ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 11:23 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha, сделал, как у тебя Код: java 1. 2. 3. 4. 5. 6. 7.
, даже перешел на application.yml вместо application.properties, но не помогло. здесь не выполняется начальная инициализация, при чтении конфигурационного файла: Код: java 1. 2. 3. 4. 5. 6.
в методе .build(); ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 14:02 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
выложи минимально воспроизводимый пример - выкинь все ненужное, оставь только этот конфиг и если не работает, выкладывай ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 14:10 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
на счет инъекции по имени прояснилось - оказывается, если существует несколько бинов одного типа, то инъекция по имени это fallback для случая, когда нет @Primary, если @Primary есть, то инжектится он, а имя параметров игнорируется. Так что лучше либо явно бин-методы вызывать, либо использовать Qualifier ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 14:42 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chpasha, с твоей помощью - победа. вот как работает у меня: привожу пример только 2-й БД Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
и инжектить bean jdbcRepositoryPg нужно не так: Код: java 1. 2. 3. 4. 5.
а так: Код: java 1. 2. 3.
... пошёл изучать твою ссылочку "на счет инъекции". без тебя - ничего бы не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 15:26 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
chron пошёл изучать твою ссылочку "на счет инъекции". это не "ссылочка", я просто запостил типа багрепорт на гитхабе спринга, они мне сказали, что это не баг и объяснили почему ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2021, 16:33 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
автор столкнулся с проблемой ,которая задается на любом тех интервью- как обозначить две имплементации одного интерфейса я предпочитаю спринг нейминг- но вообще для общего понимания лучше @Qualifier(name =a) причем нужно понимать что @Qualifier может использоваться как для обьявления ,так и для внедрения- тоесть @Primary по сути не нужен ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2021, 20:54 |
|
как правильно внедрить bean в компонент spring-boot.
|
|||
---|---|---|---|
#18+
O_79_O, здорово, всё работает: конфигурация: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и класс-Service: Код: java 1. 2. 3. 4. 5. 6. 7. 8.
мне с самого начала конструкция @Primary казалась легкомысленной. Логика: если есть @Primary, значит есть альтернатива, и нужно правильно настроить возможные коллизии, а не отдавать всё @Primary. а вообще, развитие spring напоминает ризому. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2021, 13:20 |
|
|
start [/forum/topic.php?fid=59&msg=40097840&tid=2120343]: |
0ms |
get settings: |
27ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
280ms |
get tp. blocked users: |
2ms |
others: | 367ms |
total: | 761ms |
0 / 0 |