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