新项目新知识总结02
JUC的AtomicReference
①.AtomicReference和AtomicInteger非常类似,不同之处就在于AtomicInteger是对整数的封装,而AtomicReference则对应普通的对象引用。也就是它可以保证你在修改对象引用时的线程安全性。
②.AtomicReference是作用是对”对象”进行原子操作。 提供了一种读和写都是原子性的对象引用变量。原子意味着多个线程试图改变同一个AtomicReference(例如比较和交换操作)将不会使得AtomicReference处于不一致的状态。
上传阿里云
@Override public void uploadImgToOSS(ImportAssetsSaveRequest assetsSaveRequest) { String pare = assetsSaveRequest.getProjectId()+"/"; assetsSaveRequest.getImportAssets().forEach(importShot -> { if(importShot.getAssetsImgFile() != null){ String filePatch = importShot.getAssetsImg(); String imgUrl = aliOssServiceI.upload(importShot.getAssetsImgFile() , pare + (StringUtil.isBlank(importShot.getAssetsName()) ? importShot.getTaskSubLinkName() : importShot.getAssetsName()) +"/"+importShot.getFileName() ); importShot.setAssetsImg(imgUrl); logger.info("上传文件至阿里云:{},上传后路径{}" , filePatch , importShot.getAssetsImg()); } }); }
@Service暴露的服务接口
import org.apache.dubbo.config.annotation.Service;
在暴露的服务接口实现类中使用
@Reference引用服务
@Reference private SystemUserRestServicesI systemUserRestServicesI;
<!-- 配置包扫描器,alibaba的@Service注解 -->
<dubbo:annotation package="com.zm.service" />
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="e3-manager" />
<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
流程图