使用自定义的springboot starter
e.g. 以阿里云oss为例,自定义一个starter,方便在项目中使用
1. 创建aliyun-oss-spring-boot-starter项目
文件夹中只保留pom.xml和.iml(idea配置文件)
如果没有.iml,可以运行mvn idea:module生成
2. 创建aliyun-oss-spring-boot-starter-autoconfigure项目
在starter中的pom.xml中添加依赖
1 | <dependency> |
3. 将AliOSSUtils类放入autoconfigure项目中
发现MultipartFile报错,因为没有引入spring-boot-starter-web依赖
在autoconfigure项目中的pom.xml中添加依赖即可
1 | <dependency> |
4. 调整AliOSSUtils类
如果将AliOSSUtils类中的accessKeyId、accessKeySecret、bucketName、endpoint等参数配置到application.properties中,那么就需要使用@EnableConfigurationProperties
注解来启用配置属性,同时也需要为new AliOSSUtils()添加一个构造方法,将配置属性传入。
1 |
|
这样properties类中的属性值就可以从application.properties中读取
5. 配置META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
1 | com.aliyun.oss.AliOSSAutoConfiguration |
填写自动配置类的全路径,实现自动配置
6. 测试
在starter项目中的pom.xml中添加依赖
1 | <dependency> |
然后配置properties
1 | aliyun.oss.access-key-id=xxx |
然后就可以使用@Autowired注入AliOSSUtils类,调用方法上传文件了…
总结
说实话,真的会在实际项目中用到这个东西吗?不过了解一下也是好的,毕竟springboot的自动配置机制是非常强大的,可以帮助我们简化很多工作…