Spring boot配置文件类型及阿里云OSS配置

Spring boot 常用配置文件

@value注解:用于外部配置的属性注入,具体用法为:@Value(“${配置文件中的key}”)

配置文件: application.properties

#阿里云OSS配置
aliyun.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
aliyun.oss.accessKeyId=xxxxxx
aliyun.oss.accessKeySecret=xxxxxxx
aliyun.oss.bucketName=xxxxx

java类

@Component
public class AliOSSUtils {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;

    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;

    @Value("${aliyun.oss.bucketName}")
    private String bucketName;

}
spring boot 提供不同种类的配置文件
  • application.properties

    server.port=8080
    server.adress=127.0.0.1
    
  • application.yml/application.yaml // 推荐,清晰简洁

    server:
      port: 8080
      adress: 127.0.0.1
    
  • application.xml // spring boot不支持

    <server>
    	<port>8080</port>
        <adress>127.0.0.1</adress>
    </server>
    
yml
  • 大小写敏感
  • 数值前必须有空格作为分隔符
  • 使用缩进表示层级关系,缩进时只允许使用空格
  • 缩进的空格数目不重要,只要相同层级的元素左对齐即可
  • #表示注释

yml常用两类数据格式

# 定义对象/Map集合
user:
  name: Tom
  age: 20
  adress: beijing

# 定义数组/List/Set集合
hobby:
  - java
  - C
  - C++
  - python
yml配置文件
spring:
# 数据库连接信息
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: xxxx
    username: xxxx
    password: xxxxx
# 文件上传配置
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
# Mybatis配置
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
# 阿里云配置
aliyun:
  oss:
    endpoint: xxxxxx
    accessKeyId: xxxxxxx
    accessKeySecret: xxxxxxxx
    bucketName: xxx

阿里云 OSS 工具

@ConfigurationProperties注解
@ConfigurationProperties注解
可以批量将外部的属性配置注入到bean对象的属性中
@Value注解只能一个一个的进行
@Component
@Data
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOssProperties {
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}
/**
 * 阿里云 OSS 工具类
 */
@Component
public class AliOSSUtils {

    @Autowired
    private AliOssProperties aliOssProperties;
//    @Value("${aliyun.oss.endpoint}")
//    private String endpoint;
//
//    @Value("${aliyun.oss.accessKeyId}")
//    private String accessKeyId;
//
//    @Value("${aliyun.oss.accessKeySecret}")
//    private String accessKeySecret;
//
//    @Value("${aliyun.oss.bucketName}")
//    private String bucketName;

    /**
     * 实现上传图片到OSS
     */
    public String upload(MultipartFile file) throws IOException {
        String accessKeyId =  aliOssProperties.getAccessKeyId();
        String accessKeySecret = aliOssProperties.getAccessKeySecret();
        String endpoint = aliOssProperties.getEndpoint();
        String bucketName = aliOssProperties.getBucketName();
        // 获取上传的文件的输入流
        InputStream inputStream = file.getInputStream();

        // 避免文件覆盖
        String originalFilename = file.getOriginalFilename();
        String fileName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));

        //上传文件到 OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, inputStream);

        //文件访问路径
        String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
        // 关闭ossClient
        ossClient.shutdown();
        return url;// 把上传到oss的路径返回
    }
}

阿里云配置

# 阿里云配置
aliyun:
  oss:
    endpoint: xxxxxx
    accessKeyId: xxxxxxx
    accessKeySecret: xxxxxxxx
    bucketName: xxx
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值