Весенняя загрузка - инициализация источников данных прежде всего - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть 2 класса конфигурации, один с конфигурацией источников данных, а другой - мой WebSecurityConfig, который расширяет WebSecurityConfigurerAdapter.Я хочу загрузить значения БД для использования в WebSecurityConfig, поэтому мне нужно завершить инициацию источников данных до WebSecurityConfig.

OracleConfiguration

@Configuration
@ConfigurationProperties("oracle")
@Order(Ordered.HIGHEST_PRECEDENCE)
public class OracleConfiguration {
   //data source beans...
}

WebSecurityConfig

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
@Order(Ordered.LOWEST_PRECEDENCE)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
//security configs like SAML...
}

И все же, когда я отлаживаю, код в WebSecurityConfig запускается до инициализации источников данных, пример инициализации источника данных (внутриOracleConfiguration)

@Bean
@Primary
DataSource dataSource() throws SQLException {
     //Init
    OracleDataSource dataSource = new OracleDataSource();
    dataSource.setUser(username);
    dataSource.setPassword(password);
    dataSource.setURL(url);
    dataSource.setImplicitCachingEnabled(true);
    dataSource.setFastConnectionFailoverEnabled(true);
    return dataSource;
}

1 Ответ

0 голосов
/ 27 декабря 2018

Попробуйте поместить dataSource в некоторый параметр bean-компонента в WebSecurityConfig.В этом случае bean-компоненты в webSecurityConfig будут зависеть от bean-компонента dataSource в OracleConfiguration.Я думаю, что это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...