2014-05-08 118 views
3

我試圖Liquibase與Spring集成(見本http://www.liquibase.org/documentation/spring.html) 目前我使用手動Liquibase,我想更新數據庫的應用程序(WAR)的初始化的一部分Liquibase和Spring集成

一切都很好,預計Liquibase Spring Bean加載很多其他豆類(例如Spring Security beans)。

我如何確保Liquibase bean在所有其他bean之前加載? 認爲目前Liquibase bean擁有自己的Spring配置文件。

謝謝。

+0

也許這將有助於https://stackoverflow.com/questions/3187899/order-of-spring-bean-initialization –

+0

如果我有多個「實現BeanPostProcessor」的bean,該怎麼辦? – lielran

回答

5

我只是偶然發現了同樣的問題,並用@DependsOn註解解決了這個問題。 它有助於春天解決依賴關係的順序是有道理的,應該是不言自明的。

示例代碼:

@DependsOn("liquibase") 
public class SecurityConfiguration extends WebSecurityConfigurerAdapter { 

    @Autowired 
    private DataSource dataSource; 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.jdbcAuthentication() 
       .dataSource(dataSource) 
       // ... 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     // ... 
    } 
} 

可選地存在用於基於XML配置depends-on屬性。