Мое приложение использует Spring Boot (последняя версия) и имеет зависимость, которая использует Spring (последняя версия). Зависимость имеет класс Dao
, помеченный @Repository
, который расширяет пару аннотированных абстрактных классов до JdbcDaoSupport . Кроме того, этот класс имеет @PostConstruct
-аннотированный метод, который устанавливает источник данных.
Вторичный Service
класс, аннотированный @Service
, расширяется от Dao
.
I Я обнаружил, что автопровод <Service instance>.getJdbcTemplate()
- который происходит из вышеупомянутого суперкласса JdbcDaoSupport
- дает null
.
Если я опускаю аннотацию @Repository
в Dao
, jdbcTtemplate правильно набор. То же самое происходит, если я аннотирую это Dao
с помощью @Service
.
Часть от того факта, что я мог аннотировать их обоих без каких-либо конкретных c целей - весь код приложения является экспериментальным, хотя я Можно увидеть ситуацию, когда основной сервис расширяет хранилище (dao), в то время как более сложный может реализовать его логику c, делегирующую нескольким дао - это запрещено Spring или я что-то упустил?
UPDATE
Я добавил @PostConstruct
метод к службе, и он не вызывается.
UPDATE / 2
Я попытался автоматически подключить дао внутри службы, но я получил то же самое результат; мне кажется, дело @Repository
и PersistenceExceptionTranslationPostProcessor
, когда последний заменяет мой бин на сгенерированный прокси ( GitHub, проблема ).