我想按顺序加载@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;
}
}
谁能告诉我缺少什么以及哪里出错了?
最佳答案
我认为你必须使用 @Order
注释。
@Component
@Order(1)
public class SampleProperties {
// code
}
@Component
@Order(2)
public class SampleConfiguration {
// code
}
关于java - 如何在spring boot中按顺序加载@Configuration类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58538262/