【发布时间】:2021-08-26 16:15:43
【问题描述】:
“uploadFile”方法中的MultipartUtility 对象实例“multipartUtil”是线程安全的吗?我相信实例地址将存储在堆栈中,对象将存储在堆中。这个 MultipartUtility 类具有类级变量。如果对象实例只能由该特定线程访问,那么所有变量都期望类上的静态变量被认为是线程安全的?
public class MyController {
public ResponseEntity<String> uploadFile(String stringUrl, MultipartFile multiPartFile) {
String charset = "UTF-8";
String contentType = "multipart/form-data";
String agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2";
MultipartUtility multipartUtil = new MultipartUtility(stringUrl, charset);
multipartUtil.addHeaderField("User-Agent", agent);
multipartUtil.addHeaderField("Content-Type", contentType);
File fileObj = new File(multiPartFile.getOriginalFilename());
multipartUtil.addFilePart("fileUpload", fileObj);
List<String> response = multipartUtil.finish();
StringBuilder responseStr = new StringBuilder();
for (String line : response) {
responseStr.append(line);
}
return new ResponseEntity<String>(responseStr.toString(), HttpStatus.OK);
}
}
【问题讨论】:
-
没关系,因为你每次都在创建一个新实例。
标签: java thread-safety