RPC框架Springboot版
移植
-
问题:移植过程中出现依赖无法导入问题
解决:依赖位置放的不对 放到了里面 这是版本号管理的地方
-
问题:启动出现问题 slf4j包中有冲突
LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Reload4jLoggerFactory loaded from file:/E:/Java/maven/repository/org/slf4j/slf4j-reload4j/1.7.36/slf4j-reload4j-1.7.36.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Reload4jLoggerFactory at org.springframework.util.Assert.instanceCheckFailed(Assert.java:702)解决:Spring Boot 项目一般都会引用 spring-boot-starter 或者 spring-boot-starter-web,而这两个起步依赖中都已经包含了对于 spring-boot-starter-logging 的依赖,所以,我们无需额外添加依赖。 测试类也是 加入了就不需要再加入了
-
问题:报错 Error creating bean with name ‘requestMappingHandlerAdapter‘ defined in class path resource……
解决:和jackson依赖有冲突 回退到2.11.4版本 -
**成功 开始测试 就是整合的有点问题 **
-
问题 相关的数据库启动类 之类的Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required 这些放了 依旧还是上面的问题
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency> <!--主要提供了三个功能:第一个是对数据源的装配,第二个是提供一个JdbcTemplate简化使用,第三个是事务。--> <!--其实这里并不用配置 因为底下的mybatis的启动类已经引入了对应包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>解决:忘记引入mybatis了
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> -
遇到问题
An attempt was made to call a method that does not exist. The attempt was made from the following location: org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory解决:下载了一个Maven Help去检查冲突的依赖 解决maven依赖冲突问题:An attempt was made to call a method that does not exist…_MTonj的博客-优快云博客
这个 比较重要我感觉 报错不停 持续的问题 依赖
就根据之前成功的配 不然这些有太多的问题 我这次的问题就是引入了太多的导致重复冲突
还在努力的去配置 根据注解 排除掉了没有扫描到 -
大bug(非controller 非controller、service引用,静态引用注入不进去)⭐好好看看
解决:解决非controller使用@Autowired注解注入为null问题(@PostCon。。。 - 百度文库 (baidu.com)

package com.rpc.zeng.common.monitor; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.rpc.zeng.common.exception.RpcException; import com.rpc.zeng.common.monitor.service.RpcMonitorService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; /** * @Author 祝英台炸油条 * @Time : 2022/6/3 19:47 **/ @Slf4j @Component public class RpcMonitorOperator { @Autowired private RpcMonitorService rpcMonitorService; public static RpcMonitorOperator rpcMonitorOperator; @PostConstruct public void init(){ rpcMonitorOperator = this; } /** * 作用 就是每次开启服务提供商的时候 删除掉所有的对应项目 */ public void deleteAll() { rpcMonitorOperator.rpcMonitorService.remove(null); } /** * 每次开启服务的时候 就进行添加对应的服务 当然 起始调用次数为0 */ public void addServer(RpcMonitor rpcMonitorServer) { rpcMonitorOperator.rpcMonitorService.save(rpcMonitorServer); } /** * 更新相应的服务 将相应的服务调用次数+1 同时update的时候 会自动的更改调用时间 做这个的时候 要上锁 防止线程冲突 */ public synchronized void updateServer(String methodAddress) { QueryWrapper<RpcMonitor> wrapper = new QueryWrapper<>(); // 没问题 查询的时候 是跟对应的列名进行比较 wrapper.eq("method_name", methodAddress); RpcMonitor rpcMonitor = rpcMonitorOperator.rpcMonitorService.getOne(wrapper); if (rpcMonitor == null) try { throw new RpcException("监控中心出现错误"); } catch (RpcException e) { log.error(e.getMessage(), e); return; } rpcMonitor.setCallNum(rpcMonitor.getCallNum() + 1); rpcMonitor.setCallTime(null); rpcMonitorOperator.rpcMonitorService.update(rpcMonitor, new QueryWrapper<RpcMonitor>().eq("id", rpcMonitor.getId())); } } -
提取了方法路径 防止因为路径的原因出错
-
-
成功实现! 过几天搞个前后端联动一下!
-
还要继续优化 很多方面 注解之类的选项
1356

被折叠的 条评论
为什么被折叠?



