我有 2 个配置类,一个是数据源配置,另一个是我的 WebSecurityConfig
延伸WebSecurityConfigurerAdapter
.我想加载要在WebSecurityConfig
中使用的数据库值,所以我需要在WebSecurityConfig
之前完成启动数据源。
甲骨文配置
@Configuration
@ConfigurationProperties("oracle")
@Order(Ordered.HIGHEST_PRECEDENCE)
public class OracleConfiguration {
//data source beans...
}
网络安全配置
@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;
}
尝试将 dataSource 放入 WebSecurityConfig 中的某个 bean 参数。在这种情况下,webSecurityConfig 中的 bean 将依赖于 OracleConfiguration 中的 dataSource bean。我认为它会起作用。