【发布时间】:2020-02-20 14:39:04
【问题描述】:
我想按顺序加载@Configuration 类。我有两个配置类。我需要在 sampleconfiguration 类之前加载我的 SampleProperties 类。
我尝试了以下注释,但没有按预期工作。
@AutoConfigureAfter(SampleProperties.class )
@AutoConfigureBefore(SampleConfiguration.class)
我已将我的配置类放在 diff 包中,以便按顺序读取配置类。使用 @Import 函数,我将我的配置类包含到我的应用程序中
我的主班:
@Import({SampleProperties.class,SampleConfiguration.class,})
public class SampleApplication{
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
我的 SampleProperties 类
@Configuration
@AutoConfigureBefore(SampleConfiguration.class)
@ConfigurationProperties("demo")
@Data
public class SampleProperties {
private String team;
private int teamSize;
private String teamLeader;
}
我的示例配置类:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef="sampleEntityManager",
transactionManagerRef="sampleTransactionManager",
basePackages= {"com.example.demo.repo"})
@AutoConfigureAfter(SampleProperties.class)
public class SampleConfiguration {
@Autowired
Environment env;
@Bean(name="sampleDataSource")
@Primary
public DataSource dmsDataSource() {
// functions
return null;
}
@Primary
@Bean(name = "sampleEntityManager")
public LocalContainerEntityManagerFactoryBean dmsEntityManagerFactory(EntityManagerFactoryBuilder builder) {
// functions
return null;
}
@Primary
@Bean(name = "sampleTransactionManager")
public PlatformTransactionManager dmsTransactionManager(@Qualifier("sampleEntityManager") EntityManagerFactory entityManagerFactory) {
// functions
return null;
}
}
谁能告诉我遗漏了什么以及哪里出错了?
【问题讨论】:
-
我也试过了。但不工作
-
您的
SampleProperties不是(或应该)是@Configuration对象。它应该是@Component。@AutoConfigure也无济于事,因为它不是自动配置。为什么排序如此重要? -
也许你可以尝试使用
@Order。我认为它也适用于@Configuration,而不仅仅是@Component。
标签: java spring spring-boot configuration