小编Mar*_*kus的帖子

如何强制弹簧配置类的加载顺序?

我在一个多模块项目(maven)上使用spring-boot.每个模块都有自己的@Configuration类.基本上我有以下布局

模块foo-embedded(运行只调用SpringApplication.run())方法:

@Configuration
@EnableAutoConfiguration
@ComponentScan("de.foobar.rootpackage")
@Import({ApplicationConfig.class, RepositoryConfig.class, SecurityConfig.class})
public class FooApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(FooApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

模块foo-common(包含所有bean和spring-data-jpa初始化配置)

@Configuration
@EnableJpaRepositories
@EnableTransactionManagement(entityManagerFactoryRef="entityManagerFactory")
public class RepositoryConfig {

    @Bean(destroyMethod = "shutdown")
    public DataSource getDataSource() {
        // returning a Hikari CP here
    }

    @Bean(name = "entityManagerFactory") // overriding spring boots default
    public EntityManagerFactory getEntityManagerFactory() {
        // returning a new LocalEntityManagerFactoryBean here
    }
}
Run Code Online (Sandbox Code Playgroud)

模块foo-security(包含spring-securiy配置和相关的域类),它具有对foo-common的maven依赖性

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    // configuring …
Run Code Online (Sandbox Code Playgroud)

java spring maven spring-boot

21
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×1

maven ×1

spring ×1

spring-boot ×1