1.pom引入
<dependencys>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencys>
2.编写自己的properties类
spring:
redis:
cache-timeout:
caches:
getCache: 300
user: 5000
代码
@Data
@ConfigurationProperties(prefix = "spring.redis.cache-timeout")
@Configuration public class CacheTimeout {
private Map<String,Long> caches;
}
3.编写AutoConfigure类(重点)
@ConditionalOnClass:某个 Class 位于类路径上,才会实例化一个Bean。也就是说,当 classpath
下发现该类的情况下进行实例化。 @EnableConfigurationProperties:为带有
@ConfigurationProperties 注解的 Bean 提供有效的支持。这个注解可以提供一种方便的方式来将带有
@ConfigurationProperties 注解的类注入为 Spring 容器的 Bean。
@ConditionalOnMissingBean:当 Spring Context中不存在该Bean时。
@ConditionalOnProperty:我此处的意思为:当配置文件中 qiniu.enable 的值为 true 时,实例化此类。
@Configuration
@ConditionalOnClass(QiniuService.class)
@EnableConfigurationProperties(QiNiuProperties.class)
public class QiNiuAutoConfig {
@Resource
private QiNiuProperties qiNiuProperties;
@Bean
@ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "qiniu", value = "enabled", havingValue = "true")
QiniuService qiniuService (){
return new QiniuService(qiNiuProperties.getQiniuAccesskey(),
qiNiuProperties.getQiniuSecretkey(),
qiNiuProperties.getQiniuBucketName());
}
}
4.建立spring.factories文件
在 resources/META-INF/ 下创建 spring.factories 文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.hoppingcity.config.qiniu.QiNiuAutoConfig , \
5.打包
mvn clean install
6.引用
配置自己yml文件即可
1485

被折叠的 条评论
为什么被折叠?



