hello啊,大家好,我是杨洋,最近呢,在整合OSS工具类,里面用到了一些静态方法,方法里面需要用自定义属性,这边还是蛮有意思的,废话不多说,开搞
首先配置自定义属性
这边呢,都是待会要使用的自定义的值
接着配置properties读取属性值
/**
* @author yanglei
* @desc oss自定义属性配置类
* @date 2020/9/14
*/
@Component
@Data
public class OssConfiguration {
@Value("${aLiYun.oss.endpoint}")
private String endpoint;
@Value("${aLiYun.oss.accessKeyId}")
private String accessKeyId;
@Value("${aLiYun.oss.accessKeySecret}")
private String accessKeySecret;
@Value("${aLiYun.oss.bucket}")
private String bucket;
@Value("${aLiYun.oss.path}")
private String path;
}
注意:这边用了lombok,如果没引入的,去掉@Data,直接自己生产get set方法
最后就是工具类里面使用
/**
1. @author yanglei
2. @desc Oss工具类
3. <p>
4. 提供 上传功能:图片支持返回在线预览,文件不宜过大,过大后期分片上传
5. 下载功能:简单下载
6. @date 2020/9/14
*/
@Component
public class OssUtils {
private static final Logger log = LoggerFactory.getLogger(OssUtils.class);
/**图片的格式
* 为这些格式的时候,返回预览的接口
*/
private static final String FILE_SUFFIX_NAME = ".GIF|.JPG|.PNG";
private static String endpoint;
private static String accessKeyId;
private static String accessKeySecret;
private static String bucketName;
private static String path;
@Autowired
private OssConfiguration ossConfiguration;
@PostConstruct
public void init() {
endpoint = ossConfiguration.getEndpoint();
accessKeyId = ossConfiguration.getAccessKeyId();
accessKeySecret = ossConfiguration.getAccessKeySecret();
bucketName = ossConfiguration.getBucket();
path = ossConfiguration.getPath();
}
- 注入你刚刚的OssConfiguration
- 在工具类写上对应的静态变量对应你的自定义属性
- 写一个init方法实现加载初始化
- 用上@PostConstruct方法,就是项目启动就会执行这个方法,你也可以实现ApplicationRunner,来初始化调用这个init方法 注意:如果对第四点有疑问,可以参考我的这篇文章:初始化执行方法
总结
那么,到这里就讲好了,注意点也写出来了,最近琐事较多,更新慢了一点,尽量多更新吧