错误记录:@Autowired注入失效

错误记录:
1.在使用分布式springboot-springCloud进行远程方法调用时,@Autowired的时候,方法爆红。找不到对应的远程方法。

如果远程接口使用的是feign方式加了@Feign注解。就是在本模块启动类中没有装配@EnableFeignClients,不要傻乎乎的把远程接口来个@Component…我就这样。。。。。。。

2.今天还碰到一个@AutoWired没有报错,但是显示dao没有找到,
三种解决方式:
1.主启动类没有在controller等包之上或是在同一级目录中,
2.在dao类没有添加注解:@Respority,@Mapper
3.直接在主启动类上添加注解扫描@CompentScan(basePages="")

@Autowired private BoEuYstbsqdOpssMapper boEuYstbsqdOpssMapper; @Autowired private BoEuModueOpssMapper boEuModueOpssMapper; @Autowired private BoEuComplateMapper boEuComplateMapper; @Autowired private ProductDeliverService productDeliverService; @Autowired private LicenseManageService licenseManageService; @Autowired private LicenseReSyncService licenseResyncService; @Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public ResultVo updateApplication(ProcessUpdateDO dto) { //1、校验数据符合性,并封装数据 BoEuYstbsqdOpssDO boEuYstbsqdOpssDO = validateAndPackageData(dto); try { // 2、修改流程主表 boEuYstbsqdOpssMapper.updateById(boEuYstbsqdOpssDO); Boolean updateQuantityFlag = false; // 是否修改数量的标志位 // 3、流程各个模块数量修改 List<ModuleUpdateDO> moduleList = dto.getModuleList(); if (!CollectionUtils.isEmpty(moduleList)) { updateQuantityFlag = true; for (ModuleUpdateDO moduleAddDO : moduleList) { BoEuModueOpssDO boEuModueOpssDO = new BoEuModueOpssDO(); boEuModueOpssDO.setId(moduleAddDO.getModuleId()); boEuModueOpssDO.setNubmber(moduleAddDO.getApplyCount()); boEuModueOpssDO.setNubmberSum(moduleAddDO.getApplyCount()); boEuModueOpssMapper.updateById(boEuModueOpssDO); } } //4、判断产品交付表是否存在数据,存在修改fillType字段,productCount字段 OpssRegionDeliverDO deliverDO = productDeliverService.updateByApplication(boEuYstbsqdOpssDO); if (Objects.isNull(deliverDO)) { log.info("申请单未查询到交付数据,无需修改交付和授权信息"); return ResultVoUtil.success("修改成功"); } //5、判断是否已经产品交付,如果已经交付,则需要修改opss_group_product_mapping 和 opss_group_module_mapping 表数据 if (!deliverDO.getIsDeliver()) { log.info("申请单未交付,无需修改授权信息"); return ResultVoUtil.success("修改成功"); } if (updateQuantityFlag) { // 涉及到数量修改的,软件关联组不变,授权数量全部改到默认组,非默认组数量全部改为0 licenseManageService.updateLicenseByApplication(boEuYstbsqdOpssDO, moduleList); } // 6、新增修改记录 BoEuComplateDO boEuComplateDO = packageApproveRecord(boEuYstbsqdOpssDO, dto.getRemarks()); boEuComplateMapper.insert(boEuComplateDO); //7、如果已经交付,需要重新同步数据到lmt系统 licenseResyncService.syncAuthGroupUpdate(Arrays.asList(dto.getCode())); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } return ResultVoUtil.success("修改成功"); } 这个在updateLicenseByApplication方法内抛出异常,为什么之前修改的内容未回滚
03-19
这部分代码怎么理解; @Slf4j @Component public class WebsocketMessageEventSubscriber extends EventBusSubscriber { @Autowired private TemsWsCache temsWsCache; @Autowired private WebsocketMessageSender sender; @Autowired private EventCenterProxy eventCenterProxy; @Autowired private RestTemplateClient restTemplateClient; @Autowired private CustomWebSocketMessageSender customSender; @Autowired private VmsInternalApiService vmsInternalApiService; @Qualifier(ThreadPoolNameConstant.API_WEBSOCKET_MESSAGE_EVENT_POOL) @Autowired private ThreadPoolTaskExecutor threadPoolTaskExecutor; private static String TEMS_KEY = StringUtils.EMPTY; @PostConstruct public void subscribeTopic() { eventCenterProxy.registerBroadcast(EventTopicConstant.WEBSOCKET_MESSAGE_SEND_EVENT, this, threadPoolTaskExecutor.getThreadPoolExecutor()); } @Override public void handleEvent(Event event) { // todo websocket日志,暂时屏蔽 log.trace("receive websocket message: {}", event.getMessage()); StompMessage stompMessage = JsonUtils.json2bean(event.getMessage(), StompMessage.class); if (Objects.isNull(stompMessage)) { log.warn("fail to handle Websocket Message Event, stompMessage is null."); return; } String filterKey = event.getFilterKey(); if (Objects.isNull(filterKey)) { filterKey = StompConstant.FILTER_KEY_WEB; } switch (filterKey) { case StompConstant.FILTER_KEY_ALL: sender.sendToWebsocket(stompMessage); customSender.sendToWebsocket(stompMessage); break; case StompConstant.FILTER_KEY_APP: customSender.sendToWebsocket(stompMessage); break; case StompConstant.FILTER_KEY_WEB: default: // 默认只推送websocket消息给web端 sender.sendToWebsocket(stompMessage); } if (stompMessage.getWsCastTypeEnum() == null) { log.error("error with null wsCastTypeEnum."); return; } Integer wsCastType = stompMessage.getWsCastTypeEnum().getIndex(); String destination = stompMessage.getDestination(); if (temsWsCache.exist(destination)) { // 向tems转发ws消息 TemsWsRequest temsWsRequest = new TemsWsRequest(); temsWsRequest.setWsCastType(wsCastType); temsWsRequest.setDestination(destination); temsWsRequest.setPayload(stompMessage.getPayload()); MultiValueMap<String, String> headers = new HttpHeaders(); headers.add("tems-key", getTemsKey()); headers.add(HttpHeaders.CONTENT_TYPE, "application/json"); RestTemplateReqDTO request = RestTemplateReqDTO.builder() .method(HttpMethod.POST) .path(TemsApiPaths.ANON_WS_REPORT) .requestEntity(temsWsRequest) .headers(headers) .build(); OperationResponse<Void> response = restTemplateClient.sendRequest2Tems(request, new ParameterizedTypeReference<OperationResponse<Void>>() {}); if (log.isDebugEnabled()) { log.debug("send ws message to tems, request:{}, response:{}", request, response); } } } private String getTemsKey() { if (StringUtils.isNotBlank(TEMS_KEY)) { return TEMS_KEY; } TEMS_KEY = Optional.ofNullable(vmsInternalApiService.getLocalVmsInfoWithVersion()) .map(OperationResponse::getResult).map(VmsVersionInfoDTO::getTemsKey).orElse(StringUtils.EMPTY); return TEMS_KEY; } }
最新发布
11-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值