我们有时候会遇到一些bean希望通过注册中心控制是否被初始化,@ConditionalOnExpression可以帮我们办到。这里写过小例子。
1、这个配置是我们上传文件指定临时目录的配置,这里通过这个查看是否注入成功。在我们想要注入控制注解添加 @ConditionalOnExpression("${is.inject:true}"),通过配置文件来控制是否注入。
@Configuration
public class PropertyConfig {
@Bean
@ConditionalOnExpression("${is.inject:true}")
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("C:\\Users\\Administrator\\Desktop\\deploy");
return factory.createMultipartConfig();
}
}
2、在启动类添加如下代码进行测试
@SpringBootApplication
public class DynamicElasticjobApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(DynamicElasticjobApplication.class, args);
}
@Autowired
private ApplicationContext applicationContext;