У меня есть два разных bean-компонента (один и тот же тип данных, разные аннотированные имена), которые я хочу использовать @Autowired в различных конструкторах. Существует множество статей и блогов с инструкциями:
xml конфигурация на основе, внедрение зависимостей членов, автоматическое подключение конструктора только с одним уникальным компонентом, и так далее и так далее
, но ничего такого, что соответствует всем требованиям в заголовке этого поста:
Я не использую XML конфигурацию на основе
Мои бины выглядят так :
@Primary
@Bean(name = TRACKING_DB)
public DataSource trackingDataSource()
{
return dataSource(
"com.mysql.jdbc.Driver",
"jdbc:mysql://${SECRET_DEPLOY_TRACKING_DB_URL}/ci_ciccttrackingdatabase_dd?useSSL=true&requireSSL=true&verifyServerCertificate=true",
"${SECRET_DEPLOY_TRACKING_DB_ID}",
"${SECRET_DEPLOY_TRACKING_DB_PASS}"
);
}
@Bean(name = REPORTING_DB)
public DataSource reportingDataSource() {
return dataSource(
"com.microsoft.sqlserver.jdbc.SQLServerDriver",
"${SECRET_APP_REPORTING_DB_URL}",
"${SECRET_APP_REPORTING_DB_ID}",
"${SECRET_APP_REPORTING_DB_PASS}"
);
}
@ Qalifier не работает, то есть для членов, а не конструкторов
@ значение не работает
У меня есть конструкторы, которые должны выглядеть следующим образом из-за существующего кода, который я изменяю:
@Autowired
public CallDataAccess(DataSource dataSource) {
///...
}
и
@Autowired
public EventDataAccess(DataSource dataSource) {
///...
}
... но Spring делает попытки вставить String / значение в конструкторы, а не в компонент DataSource. Я получаю:
"Ошибка при создании bean-компонента с именем 'reportsCallDataAccess", определенного в файле xxx: неудовлетворенная зависимость, выраженная через параметр конструктора 0; вложенным исключением является org.springframework.beans.ConversionNotSupportedException: не удалось преобразовать значение типа' java .lang.String 'в требуемый тип' javax. sql .DataSource '; вложенное исключение: java .lang.IllegalStateException: Невозможно преобразовать значение типа' java .lang.String 'в требуемый тип' javax . sql .DataSource ': не найдено подходящих редакторов или стратегии преобразования "