图片云存储地址头的处理:

    /**
     * 通用地址头处理
     */
    @Autowired
    private PropertiesConfiguration propertiesConfiguration;

    public void processImageUrl(){
        DoctorDto doctorDto = new DoctorDto();
        //仅仅是把父地址传递进去,不需要这样处理。
        doctorDto.setUrlHead(propertiesConfiguration.getOssFileUrl(), propertiesConfiguration.getSevenNiuFileUrl());
        //思路:
        //1)把地址配置到properties中,动态可配置,
        //2)通过value给变量赋值并进行实例化,
        //3)调用方法处理图片地址头。  每次后端返回前端url都会这样处理。
        //4)BaseDto里面封装了通用的拼接逻辑,供子dto调用。

        //1)不一定要这样用,BaseDto里面获取父地址,并提供拼接方法,
        //2)json序列化的时候会调用get
        // 方法,get方法调用弄给父类中的方法拼接数据

    }

BaseDto

public abstract class BaseDto {
    //图片存储oss
    private String ossPrefixUrl;
    //图片存储七牛
    private String sevenPrefixUrl;

    /**
     * 把基地址传递进来
     *
     * @param ossPrefixUrl
     * @param sevenPrefixUrl
     */
    public void setUrlHead(String ossPrefixUrl, String sevenPrefixUrl) {
        this.ossPrefixUrl = ossPrefixUrl;
        this.sevenPrefixUrl = sevenPrefixUrl;
    }

    /**
     * 如何拼接处理url?
     * 公共的内容在父类中处理
     *
     * @param url
     * @return
     */
    public String getUrl(String url) {
        if (StringUtils.isEmpty(url)) {
            return "";
        } else if (url.startsWith("/qiniu/")) {
            return this.sevenPrefixUrl == null ? url : this.sevenPrefixUrl + url;
        } else {
            return this.ossPrefixUrl == null ? url : this.ossPrefixUrl + url;
        }
    }

}

DoctorDto:super.getUrl(imageUrl)

public class DoctorDto extends BaseDto {

    //用户头像
    private String imageUrl;

    public String getImageUrl() {
        //todo:在这里处理图片地址
        return super.getUrl(imageUrl);
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    @Override
    public String toString() {
        return "DoctorDto{" +
                "imageUrl='" + imageUrl + '\'' +
                '}';
    }
}

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐