not BB,just show my code
1、开关控制器
public class EnableTestCacheSwitch {
@Bean
public EnableTest EnableTestCacheMarker(){
return new EnableTest ();
}
public class EnableTest {
}
}
2、开关控制器注解(用于启动类)
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
//引入控制器
@Import(EnableTestCacheSwitch.class)
public @interface EnableTestCache {
}
3、config配置文件
@Data
@ConfigurationProperties(prefix = "test-cache")
public class TestCacheProperties {
private Boolean allowNull = true;
private Integer init = 100;
}
4、config配置文件
@EnableCaching
@Configuration
//条件
@ConditionalOnBean(EnableTestCacheSwitch.EnableTest.class)
//配置文件
@EnableConfigurationProperties(TestCacheProperties.class)
public class TestCacheConfig extends CachingConfigurerSupport {
@Bean("testRedisTemplate")
@ConditionalOnClass(value = RedisTemplate.class)
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
//init bean
}
}
5、启动类开启
@EnableTestCache
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
log.info("=====app had started=====");
}
}